Cancel a queued music take: only before generation starts
Sume cancels a queued music job, but once generation starts the API returns 409 job_generation_already_started and the job runs on. Who can cancel it.

You can cancel a Sume music job while it is still queued, but not after generation has started. The jobs and results docs, read 2026-10-03, say cancellation succeeds only before generation work starts; afterwards the API returns 409 job_generation_already_started with details.cancelable: false and the job runs to completion. Cancelling an already canceled job is idempotent and returns the same canceled job.
What happens to each state?
Only the member whose key or Agent turn created the job can cancel it.
| Job state | Cancel result |
|---|---|
queued | Can be canceled |
processing, generation started | 409 job_generation_already_started; job completes |
canceled | Idempotent: same canceled job returned |
completed or failed | Terminal; nothing to cancel |
How do I use this in an audition?
If you queued five takes and the first one is good enough, call POST /v1/jobs/:id/cancel on the rest straight away. Those still queued stop; any already generating still finish and bill. Check each job's status afterwards rather than assuming. The same tactic frees capacity when a workspace is hitting 429 queue_full, which the generation admission docs say you can resolve by cancelling queued jobs.
What is uncertain?
- How quickly a queued job moves to processing depends on your plan, so a cancel sent a minute late may get the 409.
- The
cancel_urlfield in the job envelope may be null when cancelling is no longer possible; do not build on it as a guarantee. - The docs do not say whether a cancel before generation refunds a hold in every case, so read your usage after a cancel.
Sources
Related posts
More in Developers
- Cancel a Sume video job twice: the second call returns the same job
POST /v1/jobs/{id}/cancel is idempotent for a canceled job and returns 409 once generation has started. How to write a cancel that is safe to retry.
- Caption a folder of videos in Python: thread pool, one key per file
Submit caption jobs from a Python thread pool without double billing: one Idempotency-Key per file, poll with next_poll_after_seconds, and the two 429s.
- Caption design colors: hex, rgb, rgba, transparent only, else 400
Sume's caption design.colors accepts hex, rgb(), rgba() or transparent and rejects other CSS with a 400. Fields, examples and a safe validator.
- Check an episode against TikTok upload specs before you post
TikTok's media guide lists MP4/H.264, 360 to 4096 px a side, 23 to 60 FPS and a 4GB cap. Use Sume video inspect to read your file's probe before uploading.
Written by Sume