Format run expires_at: 90 minutes from created_at, or sooner
How long a Sume Format run can live, which statuses are terminal, and how to poll the status_url without waiting on an event stream that does not exist.

A Format run has an expires_at that is 90 minutes after created_at, or earlier if the run goes silent. Poll status_url until the status is terminal: completed, failed, canceled or skipped. queued and processing are the only states that mean "keep waiting". Treat expires_at as your outer bound and stop polling there.
There is no SSE stream. events_url returns a phase timeline only (preparing, running, finalizing), useful for a progress label and nothing more.
Statuses and what to do
| Status | Terminal | Action |
|---|---|---|
| queued | No | Keep polling |
| processing | No | Keep polling |
| completed | Yes | Read result_url |
| failed | Yes | Read the error and output_error; unattended_blocked means the run needed a human |
| canceled | Yes | Nothing delivered |
| skipped | Yes | Another run was active and the Format policy skipped this one |
Cancel is not always an effect
Cancel returns a cancel_effect of canceled or no_op. A run that already finished answers no_op, so read the status again before you assume spend stopped.
Poll cadence
Read calls have roughly 40 times the budget of write calls, so polling is cheap next to creating runs. A two-second interval is what the Sume SDK uses by default in subscribeFormatRun; see SDK runs.
Sources
Related posts
More in Formats
- Format run spend cap: generation_spend_cap_usd max 500, zero rejected
How generation_spend_cap_usd works on a Sume Format run: the 500 ceiling, why 0 is rejected, null meaning 500, and what the receipt does and does not include.
- Format structured output: anyOf passes, oneOf and allOf are rejected
Which JSON Schema keywords a Sume Format output_schema accepts, the 400 output_schema_invalid shape, and how it lines up with OpenAI strict structured outputs.
- Format output filled_by: agent versus projection, exact URLs
Sume Format runs fill structured output either through the agent or by projection. Learn which one ran, what projection can see, and the exact-URL gate.
- Sume webhook missed? POST /v1/format-runs/{run_id}/webhook/redeliver
Replay a Format run webhook without rerunning: the redeliver endpoint, the formats:write scope, and the two 409 errors for no webhook or a run still going.
Written by Sume