| name | output-debug-workflow |
| description | Debug Output SDK workflow issues. Use when user reports a workflow failing, erroring, hanging, producing wrong results, or asks to debug, troubleshoot, or investigate a workflow execution. |
Your task is to systematically debug an Output SDK workflow issue in a local development environment.
The arguments the user provided describe the problem they're experiencing, and may include a specific workflow ID.
Use the todo tool to track your progress through the debugging process.
Debugging Process
Overview
Follow a systematic approach to identify and resolve workflow execution issues: verify infrastructure, gather evidence, analyze traces, and apply targeted fixes.
<pre_flight_check>
EXECUTE: Claude Skill: output-meta-pre-flight
</pre_flight_check>
<process_flow>
Step 1: Verify Services Running
Before debugging, confirm that all required services are operational. The output-services-check skill provides comprehensive guidance.
<verification_commands>
docker ps | grep output
curl -s http://localhost:3001/health || echo "API not responding"
curl -s http://localhost:8080 > /dev/null && echo "Temporal UI accessible" || echo "Temporal UI not accessible"
</verification_commands>
<decision_tree>
IF docker_not_running:
RUN: docker compose up -d
WAIT: for services to start (30-60 seconds)
IF output_dev_not_running:
RUN: npx output dev
WAIT: for services to initialize
IF all_services_running:
PROCEED: to step 2
</decision_tree>
Expected State:
- Docker containers for
output are running
- API server responds at
http://localhost:3001
- Temporal UI accessible at
http://localhost:8080
Step 2: List Workflow Runs
Identify the failing workflow execution by listing recent runs. The output-workflow-runs-list skill provides detailed filtering guidance.
<list_commands>
npx output workflow runs list
npx output workflow runs list <workflowName>
npx output workflow runs list --json
npx output workflow runs list --limit 10
</list_commands>
<identification_criteria>
Look for:
- Status: FAILED or TERMINATED
- Recent timestamp matching when the issue occurred
- Workflow type matching the problem description
</identification_criteria>
<decision_tree>
IF user_provided_workflow_id:
USE: provided workflow ID
PROCEED: to step 3
IF failed_runs_found:
SELECT: most recent failed run
NOTE: workflow ID from output
PROCEED: to step 3
IF no_runs_found:
CHECK: workflow exists with npx output workflow list
IF workflow_not_found:
REPORT: workflow doesn't exist
SUGGEST: verify workflow name and location
ELSE:
SUGGEST: run the workflow with npx output workflow run <name>
</decision_tree>
Step 3: Debug Specific Workflow
Retrieve and analyze the execution trace for the identified workflow. The output-workflow-trace skill provides analysis techniques.
<debug_commands>
npx output workflow debug <workflowId>
npx output workflow debug <workflowId> --json
</debug_commands>
Tip: Use --json for complete trace data without truncation.
<analysis_checklist>
- Identify which step failed
- Examine the error message and stack trace
- Check input data passed to the failing step
- Check output data from preceding steps
- Look for patterns matching common error types
</analysis_checklist>
<temporal_ui_guidance>
For visual workflow inspection, open the Temporal Web UI at http://localhost:8080:
- Find your workflow execution by ID
- View the event history timeline
- Inspect individual step inputs and outputs
</temporal_ui_guidance>
Step 4: Suggest Fixes
Based on the trace analysis, identify the error pattern and suggest targeted fixes. Claude will invoke the relevant error skill based on symptoms.
<error_matching>
| Symptom | Skill |
|---|
| "incompatible schema" errors, type errors | output-error-zod-import |
| Replay failures, inconsistent results | output-error-nondeterminism |
| Retries not working, errors swallowed | output-error-try-catch |
| Type errors, undefined properties at step boundaries | output-error-missing-schemas |
| Workflow hangs, determinism errors | output-error-direct-io |
| Untraced requests, axios errors | output-error-http-client |
</error_matching>
<decision_tree>
IF error_matches_known_pattern:
INVOKE: relevant error skill for detailed fix
ELSE:
CONSULT: workflow-quality subagent for additional patterns
SUGGEST: Manual trace inspection in Temporal UI
</decision_tree>
After applying fix:
```bash
# Re-run the workflow to verify
npx output workflow run --input ''
Or start asynchronously and check result
npx output workflow start --input ''
npx output workflow status
npx output workflow result
Or, if the fix only affects a specific step and earlier steps succeeded,
re-run from after the last known-good step (skips re-executing earlier work)
npx output workflow reset --step --reason ""
For targeted rerun after fixing a downstream step, see the `output-workflow-reset` skill.
</verification>
</step>
</process_flow>
<post_flight_check>
EXECUTE: Claude Skill: `output-meta-post-flight`
</post_flight_check>
---- START ----
Use the problem description and any optional workflow ID the user provided.