Cancel queued video jobs when the offer changes: Pro plan example
On Pro, 4 jobs process and 20 wait in the queue (24 accepted). Only queued jobs can be canceled; a started job returns 409 job_generation_already_started.

When a Black Friday price changes mid-queue, you can cancel only jobs that have not started. On a Sume Pro plan 4 jobs process at a time and 20 wait, so up to 24 are accepted; the 20 queued ones are cancelable, and a cancel on a started job returns 409 job_generation_already_started with details.cancelable false.
What a cancel does
From the generation admission docs, as of 2026-10-08.
- At submit, Sume reserves the estimated amount.
- A successful completion captures the reserved usage.
- Failed jobs and failed queue admission release or refund the reservation.
- A started job completes or fails normally.
The Pro exposure
Assume 24 Seedance 2.5 clips of 5 s at 720p 9:16, each reserved at $2.889. Total reserve is 24 x 2.889 = $69.34. The 4 running jobs ($11.56) will finish; the 20 queued ($57.78) can be canceled.
| Group | Jobs | Price each | Total |
|---|---|---|---|
| Processing (not cancelable) | 4 | $2.889 | $11.556 |
| Queued (cancelable) | 20 | $2.889 | $57.78 |
| All accepted | 24 | $2.889 | $69.336 |
Practical order
Cancel in the order of the queue you submitted; use the cancel_url you stored for each queued job. Keep the status_url and cancel_url from each response, as the docs advise. Smaller waves reduce what is already running when the price changes: a wave of 18 on Pro keeps at most 4 jobs committed at any point.
Making the change cheaper to absorb
Smaller waves limit exposure. If you submit 18 jobs rather than 24, then after 4 start, at most 14 wait and can be canceled, and the money at risk is only the 4 running jobs, $11.56 at Seedance 2.5 prices.
If a price change will land at a known time, stop submitting an hour earlier and let the queue drain.
- Pro: 4 processing.
- Wave of 18: 14 queued.
- Running jobs complete or fail normally, and failures release the reserve.
Before you scale
After a cancel, resubmit under a new Idempotency-Key and the new price. Reusing the old key can return the old job, so name keys with a revision, such as sale-q07-r2. Check that the original job shows as canceled before you submit the replacement, so that you never pay twice for the same SKU. A canceled queued job never starts generating.
Sources
Related posts
More in Developers
- Can't choose a video model? Send sume/auto and let Sume pick
model: sume/auto lets Sume select the video family for you: 3 to 10 seconds, 16:9 or 9:16, default 720p and 8 seconds. What it does and does not tell you.
- Caption files: YouTube UTF-8, LinkedIn text-only SRT, Sume burns in
YouTube takes SRT, SBV and more as UTF-8; LinkedIn wants text-only SRT. Sume burns captions in and exports no SRT, so build the file from segments.
- Cartesia sonic-3-latest and sonic-3-preview aliases: fix model strings
Cartesia lists sonic-3-latest and sonic-3-preview as deprecated aliases. What each maps to, which ids Sume's TTS Router accepts, and a safe migration.
- Celery task for a Sume video: task id as the Idempotency-Key
One Celery task submits POST /v1/videos with its own task id as the Idempotency-Key and re-queues itself every 30 seconds until the job ends. No double bills.
Written by Sume