📘 Public beta · Endpoints are stable; OpenAPI specs and SDKs ship monthly. See changelog →
Products
Orchestration
Errors

Orchestration · Errors

Beyond global errors — see Errors (global).

Workflows

HTTPErrorMeaning
400spec.startNodeId not in nodes[]Validation: starting node missing.
400spec contains cycle: a → b → aWorkflows must be DAGs.
400spec.edges references unknown node: <id>Edges must connect declared nodes.
400decision.cases must include defaultCaseRequired to prevent ambiguity.
409slug already exists in orgSlugs unique per org.
409workflow is not active (publish first)Tried to execute a draft.

Executions

HTTPErrorMeaning
404workflow not foundWrong slug or not in your org.
409execution in terminal state: succeededCancel/approve only valid for in-progress.
409execution not awaiting approval/approve on a not-paused execution.
422templating error: step.X.output.Y is undefinedA prior step's output didn't have the referenced field. Check spec.
422service_call failed: 502 from siblingSibling returned 5xx after retries. See step's error field.

Service connections

HTTPErrorMeaning
400unknown serviceSlugMust be one of identity · aml · ... or custom:<slug>.
422connection test failed: timeoutSibling unreachable from our network.
422apiKey rejected by sibling: 401Wrong key, expired key, or wrong sibling URL.

Human approval

HTTPErrorMeaning
403not assigned to this approvalCaller's role/team/userId doesn't match assignTo.
400notes required (min 20 chars)Audit policy.
409approval already resolved by another userRace — first action wins.

Webhooks

HTTPErrorMeaning
400events: at least one requiredEmpty subscription.
400url must be httpsHTTPS-only outside sandbox.