Retry a timed-out 30-second Wan job: Idempotency-Key vs paying twice
A 30-second Wan 3.0 1080p job reserves $7.50. Resubmit it without an Idempotency-Key after a timeout and you can hold $15.00; the same key does not.

If your client times out while submitting a 30-second Wan 3.0 job at 1080p ($7.50), do not send a fresh request without the original Idempotency-Key. A second paid submit is a second job with its own reservation, so two jobs can hold $15.00 for one clip you wanted once. Resending with the same key is the supported way to retry.
What the docs say
Sume's generation admission page recommends an Idempotency-Key on every paid submit that a client can retry, and warns against submitting a paid request again only because a local worker timed out. Using the same key again for a different operation or payload returns 409 idempotency_conflict, so reuse a key only for an exact retry. On queue_full or provider_capacity_exceeded, the docs say to retry later with the same key.
| Resolution | One job | Two jobs held | Extra exposure |
|---|---|---|---|
| 480p | $1.875 | $3.75 | $1.875 |
| 720p | $3.75 | $7.50 | $3.75 |
| 1080p | $7.50 | $15.00 | $7.50 |
A safe retry
Generate the key from your own record, for example a campaign and shot id, so the same logical request always carries the same key. Keep it stable across process restarts. Then a retry after a timeout returns the original job rather than starting another.
If the request itself looks invalid (400) or the balance is short (402), a retry will fail the same way. Fix the cause first.
- Same key plus same payload: safe retry.
- Same key plus different payload: 409 idempotency_conflict.
- New key: a new job and a new reservation.
curl -X POST https://api.sume.com/v1/video-router/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: campaign-42-shot-07" \
-d @request.jsonIf you already double-submitted
If two copies of the same job are open, look at their status. A job that is still queued can be canceled before it starts, which releases its reservation; a job already processing cannot be canceled and will finish. Cancel the duplicate, keep the original, and note the job ids.
The docs also advise against tight retry loops. With 429 rate_limited, use retry-after when it is present; with queue_full, wait for a job to reach a terminal state. In both cases the same Idempotency-Key makes the retry safe, and a fresh key does not.
Sources
See generation admission and errors and rate limits. Prices are from the public catalog.
Sources
Related posts
More in Pricing
- Runway API Veo 3.1: 40 credits a second with audio, 20 without
Runway's API prices Veo 3.1 at 20 credits a second silent and 40 with audio, at $0.01 a credit. An 8-second example, and what audio costs on Sume.
- Runway Gen-4 Turbo 5 credits vs Gen-4.5 12: a 10-second clip costs
Runway's API lists Gen-4 Turbo at 5 credits a second and Gen-4.5 at 12, with credits at $0.01. What 10 seconds cost, next to the Sume rates.
- Seedance 2 at 1080p: 14 s fits a $12 balance, 15 s returns 402
On Sume, Seedance 2 at 1080p costs $0.8505 per second. A $12.00 balance covers 14 seconds ($11.907) but not 15 ($12.7575), so the 15-second submit gets a 402.
- 18-second 1080p product spin on Seedance 2.5: $25.59, split or single
An 18-second 16:9 Seedance 2.5 clip costs $25.59 at 1080p and $10.40 at 720p on Sume. Splitting into 9 s or 6 s jobs prices within a few cents.
Written by Sume