Sume video job failed: retry, new key, or switch the model?
A failed video job is final, and an Idempotency-Key replay returns the same failed job. Read the error, then retry with a new key or change models.

When a Sume video job reaches failed, read its error field first. Sume's docs say an Idempotency-Key replay returns the original job, so sending the same key again gives you the same failed job, not a new attempt. To try again, send a new key. To avoid the same failure, change something about the request.
Decision table
| Signal | Action |
|---|---|
| 400 before a job exists | Fix the request; check GET /v1/videos/models limits |
| Job status failed with an error | Read the error; retry once with a new Idempotency-Key |
| Same model fails twice | Switch to another model that lists your duration and resolution |
| Job status cancelled | Someone canceled it; do not auto-retry |
Retry rules that protect your budget
The fallback and idempotency posts below have runnable Python for the retry and model-swap steps.
- Cap retries at one per job.
- Write your intent row before you submit so a retry reuses the same business record.
- Never retry a 400; it will fail the same way.
Sources
Related posts
More in Developers
- Sume video pricing fields: list_basis and billable_margin
How to read the pricing object on a Sume video model: per second, by resolution, or per 1,000 video tokens, and why to read billable_margin, not hard-code 1.25.
- Sume video submit 415: send JSON and pass images as URLs
POST /v1/videos answers 415 unsupported_media_type when the body is not application/json. How to read details.received_content_type and send frames as URLs.
- Sume video sync submit: timed_out and capacity_exhausted flags
A sync submit returns 2xx with a job id even when the wait runs out. What the sync object says and what to do next.
- Sume webhook delivery statuses for jobs and runs, and a poll reconcile
Delivery status runs from pending to delivered, retrying, failed or exhausted; runs add not_armed. Failed or exhausted means poll the result, not a failed job.
Written by Sume