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.

5 min readSume
All posts

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.

Format run clocks, read 2026-10-06 from docs.sume.com.
ClockValueWho owns it
subscribeFormatRun default timeout20 minutesYour client
waitForRun default timeout10 minutesYour client
expires_at on a non-terminal receipt90 minutes from created_at, or earlier when silentSume 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_key on a retry of the create, so you get a 200 replay and not a second run.
  • Prefer communication.webhook_url for long video Formats, so no client has to sit open.
  • Raise the helper timeout for long-form video.

Sources

Related posts

More in Formats

All Formats posts

Written by Sume