Skip to content

Errors and limits#

A refused request answers an HTTP status and {"code", "message", "detail"}; match on code. The format is in the API Reference overview.

Workflows and executions#

Code Status Meaning
INVALID_FLOW 400 The specification is invalid, or an execution's inputs or event are (a required input missing, an event over 128 KiB). POST /flow-checks lists every finding of a specification.
FLOW_NOT_FOUND, FLOW_VERSION_NOT_FOUND, FLOW_EXECUTION_NOT_FOUND 404 —
FLOW_ALREADY_EXISTS 409 —
FLOW_CONFLICT 409 Not possible in the execution's or box's present state; the message says why.
FLOW_BUSY 429 The workflow runs as many executions as its concurrency.max, and drops what comes then.

Addresses#

What a call to an HTTP trigger's address may be answered:

Code Status Meaning
HOOK_UNAUTHORIZED 401 The call does not prove it may as the trigger's auth says: no secret, an old one, the wrong header, a signature of other bytes.
HOOK_OWNER_GONE 403 Whoever made the address no longer reaches the workspace. Someone who does makes a new secret.
HOOK_OWNER_NOT_ALLOWED 403 Whoever made the address may no longer start the workflow (flows:trigger).
HOOK_NOT_FOUND 404 No such address: removed, or mistyped.
HOOK_FLOW_GONE 404 The workflow is not there any more (deleted).
HOOK_CLUSTER_UNREACHABLE 503 The workflow's cluster did not answer; try again shortly.
HOOK_TRIGGER_GONE 404 The workflow's current version has no HTTP trigger of that id.
HOOK_METHOD 400 A GET, and the trigger does not allow_get.
HOOK_BODY_TOO_LARGE 400 The body is over 128 KiB.
HOOK_BODY 400 The body says it is JSON and is not.
HOOK_RATE_LIMITED 429 More calls in the last minute than the trigger's per_minute.
WORKFLOW_FAILED 502 A sync call's execution failed or was cancelled; the body names it.
INVALID_FLOW, FLOW_BUSY, … 400, 404, 409, 429 The workflow refused to start, as above. Anything else from its cluster answers 503.

Making an address: FLOW_TRIGGER_NOT_FOUND (404) when the workflow's current version has no HTTP trigger of that id.

Limits#

Limit Value
Workflow name [a-z][a-z0-9_-]*, 40 characters
Boxes 64 per workflow; an id 40 characters
Sub-workflows 3 levels deep
Retries 2 by default, at most 10; back-off at most a day
Repeats 20
A box's time limit 1 s to 30 days; by default 360 s for model and classify, 60 s for function, none for the rest
An execution's time limit 60 s to 30 days; none by default
Waking a deployment at zero up to 5 minutes, asked every 5 s
A light box's outputs 16 KiB together; a model's text cut at 16 KiB, its JSON at most 8 KiB; a function's result cut at 8 KiB
A run's outputs 64 pairs, 4 KiB together
Images per model or classify box 8
max_tokens 1 to 32 768
Classify labels 2 to 20; min_confidence 0.6 by default
Condition cases 1 to 20
A notice title 300 characters, message 2 000
Approval wait a day by default; 60 s to 7 days
Sleep 1 s to 7 days
Inputs a name 64 characters; a value or a default 64 KiB
Event 128 KiB
Event sent to a wait_event box 4 KiB
Expressions and templates 16 KiB each
Triggers 10 per workflow
HTTP trigger a body 128 KiB; 60 calls a minute by default, at most 600; repeats remembered 60 s by default, at most a day; sync waits 60 s by default, at most 90
An address's calls kept 30 days; the last 100 listed
Schedule every 5 to 1 440 minutes, or at HH:MM; a missed time fired up to 1 hour late
Executions at once concurrency.max 1 to 100; no limit by default
Starting with wait_seconds at most 90 s
GET …/flow-executions/{name}?wait= at most 30 s