3 days of Stripe retries vs 10 Sume attempts 30 seconds apart
Stripe retries live webhooks for up to 3 days; Sume tries 10 times, 30 seconds apart, about 4.5 minutes. After that, poll the job or call redeliver.

Stripe's live-mode retry schedule runs up to three days with exponential backoff. Sume's is much shorter: up to 10 attempts at a fixed 30 second spacing, which is about 4.5 minutes. The short Sume window is safe only because the job survives the failed delivery and you have two recovery tools: the status endpoint and the redeliver endpoint.
A note on method: figures in the table are from the vendors' pages and the ratio is my arithmetic.
Retry behaviour compared
| Item | Stripe | Sume |
|---|---|---|
| Retry window | Up to 3 days (live mode) | Up to 10 attempts total |
| Spacing | Exponential backoff | Fixed delay, 30 s by default |
| Redirects | A 3xx counts as a failure | Redirects are not followed, a 3xx is not a delivery |
| Per-attempt timeout | Not covered here | 10 seconds |
| After retries run out | Not covered here | Delivery fails; job still reaches its terminal state |
| Manual replay | Not covered here | POST /v1/jobs/{job_id}/webhook/redeliver, no attempt consumed |
The arithmetic
Three days is 72 hours, or 259,200 seconds. Ten Sume attempts leave nine gaps of 30 seconds, so 9 x 30 = 270 seconds, about 4.5 minutes of spacing, plus up to 10 seconds of timeout on each attempt if every one hangs. The ratio is 259,200 / 270 = 960, so Stripe's outer limit is up to roughly 960 times longer than Sume's spacing. Stripe's figure is a ceiling, since backoff is exponential and Stripe does not retry at a uniform rate.
What a short window means for you
If your receiver is down for more than a few minutes, Sume will stop trying but nothing is lost on the generation side. The job reached its real terminal state. Your options, in order:
- Poll GET /v1/jobs/{id}/status for jobs you stored, honouring next_poll_after_seconds.
- Call POST /v1/jobs/{job_id}/webhook/redeliver (jobs:write) for each missed job; Sume re-sends the real terminal event with a fresh timestamp and signature.
- Fetch the output from GET /v1/jobs/{id}/result when result_ready is true.
- Run a scheduled reconcile so you do not depend on noticing an outage.
Pick your design on purpose
Stripe's long retry gives you slack for a lazy receiver. Sume's does not, so the receiver must be quick (store durably, return 2xx) and the poll must be real. Read the Sume webhooks docs and the jobs docs before you launch.
Sources
Related posts
More in Comparisons
- Suno free plan: 7 trial downloads, no commercial rights for ads
Suno's free plan gives 7 lifetime trial downloads for personal use and no commercial rights. What that means for an ad, and the $0.125 per track route on Sume.
- Tavus CVI has six layers; a Sume avatar video is one job
Tavus CVI chains perception, turn-taking, speech, an LLM, TTS and rendering. A Sume talking-video is one request with a script. Which parts you own in each.
- Tavus Starter $59 for 100 minutes vs 100 minutes of Sume avatar video
Tavus Starter lists 100 minutes at $59 a month. Here is what 100 minutes of finished Sume avatar video costs at standard, plus and max, and why it is not equal.
- 10-minute narrated lesson from slides: Synthesia Basic vs Sume
Synthesia's free Basic plan lists 500 credits, about 10 minutes. A narrated slide lesson on Sume is about $1.43 for 10 minutes, with no presenter.
Written by Sume