Client timeouts for Sume jobs: SDK defaults and the 30-second cap

Sume's sync wait caps at 30 seconds, waitForRun defaults to 10 minutes, subscribeFormatRun and waitForJob to 20. Pick a deadline per job type, keep the job id.

5 min readSume
All posts

Three timeouts apply to a Sume job and they are not the same thing: the server's bounded sync wait, at most 30 seconds; the SDK's wait helpers, 10 or 20 minutes by default; and your own application deadline. Only the last should decide when your user gets an answer.

The defaults

wait_timeout_seconds is clamped to 0 through 30 and bounds one HTTP request, not the job. The SDK helpers poll client-side with a 2 second interval floor, and next_poll_after_seconds wins when it asks for a longer gap.

Sume wait budgets (read 2026-10-03)
MechanismDefault waitThrows on timeout
mode sync or subscribeUp to 30 secondsNo; returns the envelope, poll on
waitForRun10 minutesSumeRunTimeoutError
subscribeFormatRun20 minutesSumeRunTimeoutError
waitForJob20 minutesSumeJobTimeoutError

Set a deadline per job type

Images often finish inside the sync window; video, avatar-video and face swap routinely do not. Give each type its own deadline and surface a pending state to the user instead of a spinner that ends in an error.

A timeout is not a cancel

When any of these fire, the job keeps running and keeps billing. The timeout error carries the job or run id: save it, resume from status_url, or cancel explicitly. Never resubmit the same paid intent without the original idempotency key.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume