Skip to content

docs: explain execute() RUNNING-after-timeout behavior and how to debug stuck workflows#408

Merged
nthmost-orkes merged 3 commits intomainfrom
docs/execute-running-behavior-and-debug
Apr 28, 2026
Merged

docs: explain execute() RUNNING-after-timeout behavior and how to debug stuck workflows#408
nthmost-orkes merged 3 commits intomainfrom
docs/execute-running-behavior-and-debug

Conversation

@nthmost-orkes
Copy link
Copy Markdown
Contributor

Summary

  • Expands the execute() docstring with the wait_for_seconds vs retryDelaySeconds gotcha, and a code snippet for inspecting failed task details programmatically
  • Adds a FAQ entry in README.md covering the same scenario with a concrete fix and debug steps
  • Adds a "Debugging a stuck workflow" section in docs/WORKFLOW.md, plus a callout box under "Execute workflow synchronously" explaining the timing relationship
  • Documents that WorkflowRun.reason_for_incompletion is deprecated and recommends the replacement pattern: get_workflow(id, include_tasks=True) + task.reason_for_incompletion

User impact: First-time users who see status: RUNNING with empty output after their worker throws an exception have no documented path forward. Nothing explains that wait_for_seconds=10 (default) is shorter than retryDelaySeconds=60 (default), so the timeout fires while the retry is pending. These docs give users the vocabulary to understand what happened and the exact code to debug it.

Closes conductor-oss/getting-started#53

Test plan

  • Read the updated execute() docstring — covers the timing relationship and debugging pattern
  • Read the new FAQ entry — includes a corrected wait_for_seconds call and the get_workflow() snippet
  • Read the new docs/WORKFLOW.md section — three-step debug guide with code examples
  • Verify no code changes — this is docs-only

🤖 Generated with Claude Code

…ug stuck workflows

Addresses conductor-oss/getting-started#53. Documents that status='RUNNING' from
execute() is expected when wait_for_seconds (default 10s) expires before the workflow
completes — a common surprise when a worker exception triggers a 60s retry delay.

- Expand execute() docstring with the wait_for_seconds vs retryDelaySeconds gotcha,
  and a code snippet for inspecting failed task details programmatically
- Add a FAQ entry in README.md covering the same scenario with a fix and debug steps
- Add a "Debugging a stuck workflow" section in docs/WORKFLOW.md, and a callout box
  under "Execute workflow synchronously" explaining the timing relationship
- Document that WorkflowRun.reason_for_incompletion is deprecated; recommend
  get_workflow(id, include_tasks=True) + task.reason_for_incompletion instead
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 28, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

Files with missing lines Coverage Δ
...ctor/client/workflow/executor/workflow_executor.py 42.30% <ø> (ø)

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@nthmost-orkes nthmost-orkes merged commit 0d2a62d into main Apr 28, 2026
2 checks passed
@nthmost-orkes nthmost-orkes deleted the docs/execute-running-behavior-and-debug branch April 28, 2026 21:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Python SDK: document execute() RUNNING-after-timeout behavior and how to debug stuck workflows

2 participants