executionId, a status for the whole run and a status for every node.
Starting
A start request names a session and a workflow, and may carry a payload for the trigger:202 Accepted with data.executionId. The id is handed out only after the scheduler has granted a slot, so a refused start never gets one. If your client retries after a network failure, send an Idempotency-Key header: a repeat with the same key, session and workflow within ten minutes returns the first execution id instead of starting a second run.
Two keys in the start payload are reserved:
Status model
Run and node status only move forward:
A status that would step back is ignored, so a late or out-of-order event can never reopen a finished node. The full list is in Status values.
How a failure ends the run
- Nodes behind a failed node end as
UPSTREAM_FAILED, so only the node that failed showsFAILURE. - The first terminal that fails ends the run at once and cancels the other branches (
CANCELLED). - A caller that cancels ends the run
CANCELLED. A second end of a run is ignored.
While it runs
- Progress:
GET /api/executions/{executionId}returns the run and node statuses; a live stream of changes is available as server-sent events. - Logs: lines written by nodes while they run, labelled
stdoutorstderr, as a stream. - Results: a separate channel recording what reaches every terminal node, with payloads kept whole and typed.
- Commands: pause, resume, step, skip, breakpoints, signals, retry, restart and stop. See Run controls.
Results
Terminals publish each message they receive and an end marker for the node; the run publishes an end marker when it finishes. The live stream is complete. Only the replay buffer for a late reader is bounded (1,000 events per run by default), and end markers saytruncated when anything was dropped. Results are kept in memory only, so they are gone after a restart.
Restart, retry and resume
See Checkpoints and resume.