Troubleshooting
Identify the workflow stage that failed, then begin with the first relevant error. Later messages are often consequences of the original failure.
Quick checks
Run these commands from the CRADLE project root as the configured runtime user:
$ python3 --version
$ id
$ vagrant --version
$ ./cradle.sh -h
For libvirt, check virsh --version. For VirtualBox, check
VBoxManage --version.
Python setup
Symptom
Python executable not found or a Python import error.
Check
$ source venv/bin/activate
$ python3 --version
$ python -m pip install -r requirements.txt
Use the Python environment supplied by the administrator when the host is centrally managed.
Compilation
Symptom
CRADLE compilation failed for <scenario>.
Check
files/input/<scenario>.cradleexists;- the command uses the filename without
.cradle; - blocks end with a period;
- entries inside a block are comma-separated;
- values use double quotes; and
- declared instance, network, event, and object names match their definitions.
Compare the scenario with Write a scenario.
Deployment generation
Symptom
Deployment generation failed after compilation.
Check
Inspect files/output/<scenario>.yml. Confirm that the selected provider and
requested operating-system images, configurations, roles, and objects are
available in the authorized CRADLE distribution.
Provider setup
libvirt
Confirm that the runtime user has a fresh login session and belongs to the required virtualization groups:
$ id
$ virsh --version
VirtualBox
Confirm that VBoxManage is available and the runtime user has the configured
VirtualBox permissions:
$ id
$ VBoxManage --version
Review /var/log/cradle/deployment-report.yml after managed-host setup.
Vagrant validation or startup
From the exact generated deployment directory:
$ vagrant validate
$ vagrant status
Check hardware virtualization, available CPU and memory, disk space, provider installation, Vagrant boxes, and network conflicts.
Confirm that every box identifier in the generated Vagrantfile resolves to a
valid Vagrant Cloud box with a build for the selected provider. CRADLE can
generate the Vagrantfile without detecting a missing, renamed, or
provider-incompatible box; the failure then occurs during Vagrant startup.
Artifact retrieval
Confirm that every object location resolves against the configured repository and is reachable from the system that retrieves it. Check routing, DNS, certificates, authorization, and artifact presence. Do not resolve access failures by embedding credentials in the scenario.
Missing binary or configuration
Symptom
Provisioning or event execution reports that a file, executable, role, package, or configuration cannot be found.
Check
- confirm that the dependency was supplied with the authorized distribution or placed in the configured repository;
- confirm that its object location is correct and reachable;
- check file permissions and target paths;
- confirm operating-system and architecture compatibility; and
- verify any required proprietary licence or access entitlement.
CRADLE does not supply or license an external proprietary dependency merely because the scenario references it.
Provisioning
Symptom
Provision failed with exit code ....
Check
Review the first failed task in the generated bootstrap or Ansible output. Common causes include unavailable boxes, unreachable guests, missing roles or objects, provider network conflicts, and insufficient privileges.
The failed environment can remain on the host. Use vagrant status and follow
Clean up an environment when it is no longer needed.
Extraction
Symptom
Extraction failed or an incomplete dataset.
Check
- the configured forensic directory contains the required extraction files;
- provisioned guests remain reachable;
- the dataset root exists and is writable by the workflow;
- the configured Ansible connection works; and
- expected logging or capture configurations are attached to each instance.
Extraction failure does not necessarily mean provisioning failed. Check the dataset contents explicitly.
Cleanup
If vagrant destroy -f fails, confirm that you are in the correct generated
directory and that its Vagrant state still exists. Inspect before removing any
provider resource manually.
Request support
Include:
- CRADLE version or revision;
- host operating system;
- provider and version;
- scenario name;
- exact command;
- failed workflow stage;
- first relevant error; and
- sanitized logs or deployment report.
Never include passwords, tokens, private keys, or confidential scenario data. See Support for the available support channel.