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.

5 min readSume
All posts

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

Run lifecycle per Sume docs (read 2026-10-03)
StatusTerminalAction
queuedNoKeep polling
processingNoKeep polling
completedYesRead result_url
failedYesRead the error and output_error; unattended_blocked means the run needed a human
canceledYesNothing delivered
skippedYesAnother 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

All Formats posts

Written by Sume