Troubleshooting Guide#
Common issues and their solutions when using oxo-flow.
Workflow Parsing Errors#
TOML syntax error#
Symptom: parse error in workflow.oxoflow: ...
Solution: Check your TOML syntax. Common mistakes:
- Missing quotes around string values
- Incorrect array-of-tables syntax (use
[[rules]], not[rules]) - Unmatched brackets or braces
Use oxo-flow validate workflow.oxoflow to get detailed error messages.
Duplicate rule names#
Symptom: duplicate rule name: 'step1'
Solution: Every rule must have a unique name field. If you're using
[[include]] directives, use the namespace field to avoid conflicts:
Execution Errors#
Rule fails with non-zero exit code#
Symptom: rule 'bwa_align' failed with exit code 1
Solution:
- Run
oxo-flow debug workflow.oxoflow -r bwa_alignto see the expanded command with all variables substituted. - Check the log output for stderr messages.
- Try running the expanded command manually in your terminal.
- Verify that the required tool is installed and available in the rule's environment.
Command not found#
Symptom: sh: bwa: command not found
Solution: The tool is not in the system PATH. Either:
- Specify an environment in the rule:
- Or ensure the tool is installed and accessible.
Timeout exceeded#
Symptom: command timed out after 3600s for rule 'variant_calling'
Solution: Increase the timeout via --timeout flag or allocate more
resources (threads/memory) to the rule.
Wildcard Issues#
Unresolved wildcards#
Symptom: wildcard error in rule '...': unresolved wildcards: sample
Solution: Ensure wildcard values are provided. Wildcards like {sample}
must be resolved from:
- Input file patterns matched against existing files
- Explicit values in the config section
- Scatter configuration
Wildcard constraint violation#
Symptom: wildcard 'chr' value 'invalid' does not match constraint '^chr[0-9XYM]+$'
Solution: The wildcard value doesn't match the regex constraint defined in your workflow. Check that your input filenames follow the expected naming convention.
Environment Issues#
Conda environment creation fails#
Symptom: environment error (conda): ...
Solution:
- Check that conda/mamba is installed:
conda --version - Verify the environment YAML file exists and is valid
- Check for network connectivity (package downloads)
- Try creating the environment manually:
conda env create -f envs/tool.yaml
Docker image not found#
Symptom: environment error (docker): ...
Solution:
- Check that Docker is installed and running:
docker info - Verify the image reference:
docker pull biocontainers/bwa:0.7.17 - Check for authentication if using private registries
HPC modules not available#
Symptom: Module load errors when using modules in environment spec
Solution: Verify that the module system is available on your HPC node and that the specified module names and versions are correct:
DAG Issues#
Cycle detected#
Symptom: cycle detected in workflow DAG: A -> B -> A
Solution: Your rules have circular dependencies. Use oxo-flow graph
to visualize the DAG and identify the cycle. Break the cycle by:
- Removing unnecessary input/output connections
- Splitting a rule into separate steps
- Using
depends_onfor explicit ordering instead of file-based dependencies
Missing input#
Symptom: missing input for rule 'step2': intermediate.txt
Solution: Ensure that some other rule produces intermediate.txt as an
output, or that the file already exists before the workflow runs.
Checkpoint and Resume#
Resuming a failed workflow#
After fixing the cause of a failure, re-run the same workflow. oxo-flow will check checkpoints and skip already-completed rules:
Clearing checkpoint state#
To force a full re-run, delete the checkpoint file:
Performance Tips#
Workflow runs slowly#
-
Increase parallelism: Use
-jto run more jobs concurrently: -
Check resource constraints: Use
oxo-flow debugto verify that resource requirements are reasonable. -
Use streaming: For I/O-bound rules, set
pipe = trueto enable FIFO-based streaming where supported. -
Enable caching: Set
cache_keyon rules to enable content-based output reuse.
Memory issues with large workflows#
For workflows with many samples (>1,000):
- Process samples in batches using scatter/gather patterns
- Increase system memory limits
- Use cluster backends for distributed execution
Getting Help#
- Run
oxo-flow --helpfor CLI usage - Run
oxo-flow <command> --helpfor subcommand details - Run
oxo-flow debug workflow.oxoflowto inspect resolved commands - Check LIMITATIONS.md for known limitations
- Open an issue for bugs or feature requests