The status set
An execution holds one status at a time. Each status belongs to a phase.
No other statuses exist.
There is no timeout status. An execution that passes its timeout ends as
failed, or as cancelled with the reason timeout.
Terminal statuses
completed, failed and cancelled are terminal. Nothing leaves a terminal status.
Handle all three in your code:
completed— readexecutionResultand continue.failed— log the execution and retry or alert.cancelled— read the cancel reason, then clean up.
completed run is not always a successful execution. The outcome label inside executionResult tells you what the workflow decided. See Inputs and outputs.
Transitions
The platform enforces a state machine. A status change outside this diagram is rejected. Three rules explain the whole diagram:- Terminal is final.
completed,failedandcancelledgo nowhere. runningis the hub. It reaches every paused status and every terminal status.- A paused run has two exits. Both
pausedandpaused_by_agentresume torunningor end ascancelled. Neither becomesfailed.
paused_by_agent past the workflow’s timeout ends as cancelled with the reason timeout.
Cancel reasons
Acancelled execution carries a reason. The reason separates a deliberate stop from an exhausted limit.
user_requested is the only reason that reflects a deliberate stop. Treat the rest as something to fix — see Debug your workflows.
Changing a status yourself
POST /executions/{executionId}/status accepts three values: running, paused and cancelled.
- Pause suspends the execution. Progress is kept.
- Resume sends the execution back to
runningfrom where it stopped. - Cancel stops the run for good.
Watching an execution
PollGET /executions/{executionId} every 5–10 seconds. Faster polling does not make an execution finish sooner.
A single-node execution usually finishes in 30–60 seconds. A multi-node execution takes several minutes.
For long executions, use a webhook instead of a poll loop. See Webhooks and Slack.
Call a workflow
Start an execution and poll it, with working code
Debug your workflows
Find out why an execution stopped
Versions and publishing
Which version an execution uses
Batch executions
Run one workflow over many rows

