Flow Lifecycle
This page describes how a flow progresses from creation to completion (or failure) and what clients should do at each stage.
State Diagram
Loading diagram…
State Meanings
| State | Meaning | Client Action |
|---|---|---|
created | Flow was created and queued or waiting. | Start polling GET /flows/{flow_id}. |
processing | Flow is actively running. | Continue polling. Do not request output asset data yet. |
completed | Flow finished successfully. | List outputs, then fetch assets by asset_id. |
failed | Flow terminated with an error. | Inspect flow details and troubleshooting guidance, then retry if needed. |
aborted | Flow was manually stopped. | Treat as terminal; create a new flow if needed. |
Terminal States
Terminal states are:
completedfailedaborted
Stop polling when a terminal state is reached.
Output Availability
Outputs should be treated as ready only after the flow state is completed.
Recommended sequence:
- Poll until
completed. - Call
GET /flows/{flow_id}/outputs. - Fetch a specific output with
GET /flows/{flow_id}/outputs/{asset_id}?include_data=true.
Polling Guidance
- Use a fixed polling interval of 3 to 5 seconds for most clients.
- Set a client-side timeout window to avoid infinite waiting.
- Handle non-200 responses explicitly and retry only when appropriate.
Abort Guidance
If you abort a flow through the start/abort action endpoint, expect the flow to eventually settle in aborted.
Use a new flow for subsequent attempts instead of reusing an aborted flow.