Sume Format run timeout: your client stops, the run keeps billing
A client timeout on a Sume Format run does not cancel it. The run continues and bills. Store the run id, read expires_at, and call cancel_url to stop it.

A timeout in your own HTTP client or in subscribeFormatRun does not cancel a Sume Format run. The run continues and still bills, so store the run id from the create receipt and decide what to do after the timeout. The real ceiling is expires_at on the receipt: 90 minutes from created_at, or earlier if the run has gone quiet. The TypeScript helper's default timeout is 20 minutes. Sources: Format runs and results, Waiting for runs and Formats cookbook, read 2026-10-06.
What are the clocks?
Three clocks are easy to mix up.
| Clock | Value | Who owns it |
|---|---|---|
subscribeFormatRun default timeout | 20 minutes | Your client |
waitForRun default timeout | 10 minutes | Your client |
expires_at on a non-terminal receipt | 90 minutes from created_at, or earlier when silent | Sume force-finalizes the run as failed |
What should I do after a timeout?
Read status_url again with the stored id, not a new create. If you decided to give up, call cancel_url; the cancel receipt tells you whether it had effect. If the run is still working, keep waiting up to expires_at instead of inventing your own limit.
- Use the same
idempotency_keyon a retry of the create, so you get a 200 replay and not a second run. - Prefer
communication.webhook_urlfor long video Formats, so no client has to sit open. - Raise the helper timeout for long-form video.
Sources
Related posts
More in Formats
- Format run unattended_blocked: assembled_deliverable is false
unattended_blocked means the run stopped instead of claiming a deliverable it did not make. The harvested media are intermediates, not the cut.
- Does a Format run webhook fire per clip? No, once per turn
A Format run sends one format.run.terminal webhook per agent turn, however many clips it made. A continued run is new and sends its own.
- Sume Format webhook: verify the timestamp, register the final URL
Sume signs format.run.terminal with HMAC-SHA256, expects a response in 10 seconds, retries up to 10 times and does not follow redirects. Register the final URL.
- Free plan 120 writes a minute: a 100-item bulk queue is one request
A Sume bulk create is one POST against the write budget, and polling spends the separate read budget. Here are the per-plan limits and what that means.
Written by Sume