FAQ
FAQ¶
How do I debug variable interpolation issues?¶
When ${var} appears literally in output instead of being replaced:
- Check spelling and case: Variable names are case-sensitive
- Verify scope: Ensure the variable is available (step vs workflow level)
- Use verbose mode: Run with
-vto see variable interpolation in real-time - Verify capture: If using
capture_output, ensure the command succeeded - Check syntax: Use
${var}for workflow variables, not just$var
Example debugging:
What should I do when checkpoint resume fails?¶
If resume starts from the beginning or shows "checkpoint not found":
- Verify checkpoint exists: Check
~/.prodigy/state/{repo}/mapreduce/jobs/{job_id}/ - Confirm job ID: Use
prodigy sessions listto find the correct ID - Check for concurrent resume: Look for lock files in
~/.prodigy/resume_locks/ - Review checkpoint integrity: Read the checkpoint JSON to ensure it's valid
- Ensure workflow unchanged: Significant workflow changes may prevent resume
See MapReduce Checkpoint and Resume for complete details.
How do I retry failed DLQ items?¶
To retry items that failed during MapReduce execution:
# View failed items
prodigy dlq list --job-id <job_id>
# Retry all failed items
prodigy dlq retry <job_id>
# Retry with custom parallelism
prodigy dlq retry <job_id> --parallel 10
# Dry run to preview retry
prodigy dlq retry <job_id> --dry-run
Important: Before retrying, ensure the underlying issue is fixed. If the error is systematic (not transient), items will fail again.
Check json_log_location in DLQ entries to debug the original failure.
Why are my MapReduce items not being found?¶
If you see "No items to process" or "items.json not found":
- Verify input file exists: Check the path specified in
input: - Confirm setup succeeded: Ensure setup phase created the input file
- Test JSONPath: Use
jqto test yourjson_pathexpression - Validate JSON format: Ensure the file is valid JSON with
jq . - Check file location: Input file path is relative to workflow directory
Example JSONPath test:
How do I view Claude execution logs?¶
To see detailed logs of what Claude did during a command:
# View most recent log
prodigy logs --latest
# View with summary
prodigy logs --latest --summary
# Tail log in real-time
prodigy logs --latest --tail
# Direct access to logs
cat ~/.local/state/claude/logs/session-*.json
Logs contain: - Complete message history - All tool invocations with parameters - Token usage statistics - Error details and stack traces
For detailed log analysis techniques, see "Viewing Claude Execution Logs (Spec 126)" in the project CLAUDE.md file.
What does "command not found: claude" mean?¶
This error indicates Claude Code CLI is not installed or not in your PATH:
- Verify installation: Check if Claude Code is installed
- Check PATH: Run
which claudeto see if it's accessible - Use full path: Specify
/path/to/claudein workflow if needed - Verify executable name: Should be
claude, notclaude-code
Installation varies by platform - refer to Claude Code documentation.
How do I clean up orphaned worktrees?¶
When worktree cleanup fails during MapReduce execution:
# Clean orphaned worktrees for a job
prodigy worktree clean-orphaned <job_id>
# Dry run to preview cleanup
prodigy worktree clean-orphaned <job_id> --dry-run
# Force cleanup without confirmation
prodigy worktree clean-orphaned <job_id> --force
Common causes of cleanup failures:
- Locked files (check with lsof)
- Running processes (check with ps)
- Permission issues (verify with ls -ld)
- Insufficient disk space (check with df -h)
For details on cleanup failures, see "Cleanup Failure Handling (Spec 136)" in the CLAUDE.md file.
Why are environment variables not being resolved?¶
If ${VAR} or $VAR appears literally in commands:
- Check definition: Ensure variable is defined in
env:section - Verify profile: Use
--profileflag if using profile-specific values - Check scope: Confirm variable is global or in correct scope
- Use correct syntax:
${VAR}for workflow vars,$VARfor shell vars - Validate env_files: Ensure external env files are loaded correctly
Example:
See Environment Variables for configuration details.
How do I debug timeout errors?¶
When commands or phases time out:
- Increase timeout: Adjust timeout values for long operations
- Check for hung processes: Use
psortopto find stuck processes - Optimize performance: Split work into smaller chunks
- Use agent_timeout_secs: Set per-agent timeout for MapReduce
- Look for deadlocks: Check for concurrent operations blocking each other
MapReduce-specific timeout configuration:
Where are event logs stored?¶
Event logs use a global storage architecture:
Location: ~/.prodigy/events/{repo_name}/{job_id}/
What's stored: - Agent lifecycle events (started, completed, failed) - Work item processing status - Checkpoint saves - Error details with correlation IDs
How to view:
# List events for a job
prodigy events ls --job-id <job_id>
# Show event statistics
prodigy events stats
# View detailed event timeline
cat ~/.prodigy/events/{repo_name}/{job_id}/events-*.jsonl
# For real-time monitoring, tail the event file:
tail -f ~/.prodigy/events/{repo_name}/{job_id}/events-*.jsonl
Source: src/cli/commands/events.rs:22-98
Events are shared across worktrees, enabling centralized monitoring of parallel jobs.