ElevenLabs Voice Design 409: wait and retry, or new key on Sume?
Voice Design now returns 409 while a preview generation is in progress; ElevenLabs says retry. On Sume, reuse an Idempotency-Key only for the same payload.

ElevenLabs Voice Design now returns 409 when a generation for the preview is already in progress, and its changelog says to retry the request after receiving it. That is a wait-and-retry signal. Sume's retry rules are a different shape: reuse an Idempotency-Key only for the same operation and payload, and use a new one to retry a failed Format run.
The ElevenLabs note is from its changelog; the Sume rules are from Jobs and results and Errors and credits, read 2026-10-01.
Which ElevenLabs calls return the 409?
The changelog lists Create voice from preview, Create voice previews, Design a voice and Remix a voice. The 409 means a generation for the preview is already in progress.
What does a 409 mean on Sume?
Sume's documented 409 codes are about job state: job_not_completed, job_not_cancelable or job_generation_already_started. The docs do not describe a 409 for "same work already running". Treat each code by name instead of retrying blindly.
| Signal | What the source says to do |
|---|---|
ElevenLabs 409 (preview in progress) | Retry the request |
Sume 429 | Back off; use retry-after when present |
| Sume replay of the same create | Reuse the same key only for the same operation and payload |
| Sume failed Format run | Retry with a new Idempotency-Key; the old one is bound to your receipt |
How do I write the retry loop?
Keep one idempotency key per logical create. If you get a network error or a timeout, resubmit with the same key and body and Sume returns the existing job instead of a second paid one. If a Format run ended in an error status, mint a new key, or prefer continuing the run so the clips already made are kept. Do not retry unsafe submits without a key at all.
Does the same pattern apply to previews on Sume?
If you already hold a Sume job id, poll that job rather than starting another. See retrying a failed run for the full rule.
Sources
Related posts
More in Developers
- Facebook Page story API: media from an earlier post is rejected
Meta's Stories API says a story's photo or video cannot have been used in a published post. Make the story variant a new file with a Sume job, not the old URL.
- edge_fades_exceed_output: fade in and out too long for the video
Timeline 1.0 refuses fades that are too long: each edge fade is 0 to 5 seconds and fade in plus fade out must not exceed the output length.
- x-fal-billable-units header: WebSocket billing vs Sume receipts
fal bills WebSocket sessions via x-fal-billable-units headers. Sume has no such header: cost is a per-job ledger row you read back by job or run.
- Fix lens distortion in video by API with lenscorrection
Sume's video filter allowlists ffmpeg's lenscorrection, so barrel distortion from a wide action-cam clip can be corrected by coefficients you choose and test.
Written by Sume