Sume webhook retries last 270 to 370 seconds: when to poll
Sume tries a job webhook up to 10 times, 30 seconds apart, with a 10 second timeout each. That is about 4.5 to 6 minutes of retries before you must poll.

Sume tries a job webhook up to 10 times in total, with a fixed 30 second gap by default and a 10 second timeout per attempt. If your endpoint fails instantly, that is 9 gaps, or 270 seconds, before the last attempt. If every attempt runs to the full timeout, the window is 10 x 10 + 9 x 30, or 370 seconds. A receiver that is down for longer than that has to recover jobs by polling or by Redeliver.
The arithmetic
These figures come from the Webhooks docs: up to 10 attempts total, a fixed delay between attempts (30 seconds by default, not exponential backoff), and 10 seconds per attempt.
| Endpoint behavior | Attempts | Time from the first attempt |
|---|---|---|
| Refuses at once (connection error or instant 5xx) | 10 | 270 seconds until the last attempt starts (9 x 30) |
| Hangs until the 10 second timeout every time | 10 | 370 seconds until the last attempt ends (10 x 10 + 9 x 30) |
| Succeeds on a 2xx | 1 to 10 | Stops at the first 2xx |
What this means for a deploy
A rolling restart that takes under four and a half minutes is covered by retries, as long as you answer 2xx only after the event is stored. A longer outage means the job reached its real terminal state but the delivery is marked failed.
- Keep
status_urlpolling available for jobs that never get a callback. - After an outage,
POST /v1/jobs/{job_id}/webhook/redeliverre-sends the real terminal event with a fresh signature. It does not use one of the automatic 10 attempts. - Use
job_idas your idempotency key, because retries and Redeliver can send the same event again.
A caveat on the spacing
Thirty seconds is described as the default spacing, so treat 270 and 370 as the numbers for a default setup and read the Webhooks page again if your workspace differs.
Sources
Related posts
More in Developers
- Sume webhook retries for 4.5 minutes: dedupe on job_id in Python
Sume retries a webhook up to 10 times, 30 s apart. Make the effect happen once with a claim row keyed on job_id, shown in runnable Python with SQLite.
- Sume webhooks: return 2xx only after you store the event
Store the event durably, then return any 2xx. Sume retries non-2xx and network errors. Use job_id as your idempotency key to absorb duplicates.
- Sume webhook rotation: upgrade the verifier before you click Rotate
During a rotation window Sume sends two signatures in one header. A receiver that compares the whole header for equality fails every delivery. Fix it first.
- Sume webhook signature will not verify: compare the fingerprint
Each Sume delivery has x-sume-webhook-secret-fingerprint. Compare it with the dashboard fingerprint to find a wrong secret without ever sending the secret.
Written by Sume