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 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 secret fingerprint header: check your secret safely
Every Sume run webhook carries x-sume-webhook-secret-fingerprint. Compare it to the receipt and dashboard fingerprint to catch a wrong secret before verifying.
- Sume webhook signature header: why a sume-v2 entry is skipped
A Sume webhook verifier should compare only sume-v1= entries from the comma-separated header and skip other prefixes. Here is a Python check with a test.
Written by Sume