Cancel a Wan 3.0 job before it starts, and what a 1080p clip reserves
A Wan 3.0 job can be canceled only before generation starts; after that you get 409 job_generation_already_started. The reserve is $7.50 for 30 s at 1080p.

You can cancel a Sume Wan 3.0 job with POST /v1/jobs/{id}/cancel only before generation work starts. Afterwards the API returns 409 job_generation_already_started with details.cancelable: false, and the job runs to completion; a 30 second clip at 1080p reserves $7.50 at submit.
Where the cancel window is
The cancel window is real but short for a job that your plan starts right away. It is long for a job waiting in the queue. Sume accepts valid jobs as queued when your workspace is at its processing limit, so a batch of jobs on a small plan has a built-in cancel window for everything past the first slots.
Queue and processing slots
The processing limits are 1 on Free, 4 on Pro, 8 on Startup and 20 on Scale, with queue capacity of 5, 20, 40 and 100 (generation admission docs, read 2026-10-05). If you submit twelve jobs on Pro, four start and eight queue. Those eight can still be canceled.
| Plan | Processing | Queued of twelve | Cancelable while queued |
|---|---|---|---|
| Free | 1 | 5 (6 accepted; the rest get 429 queue_full) | Up to 5 |
| Pro | 4 | 8 | Up to 8 |
| Startup | 8 | 4 | Up to 4 |
| Scale | 20 | 0 | None, all start |
A cautious cancel
The status of a job you want to cancel must still be queued. Read it first, and cancel only then.
curl https://api.sume.com/v1/jobs/job_123/status \
-H "Authorization: Bearer $SUME_API_KEY"
curl -X POST https://api.sume.com/v1/jobs/job_123/cancel \
-H "Authorization: Bearer $SUME_API_KEY"Reading the answer
A cancel of a job that is already canceled is idempotent and returns the same canceled job. A cancel after generation has started returns the 409. Treat that 409 as information, not as an error to retry: the job will finish, and you will pay for the clip.
What a Wan clip reserves
Sume reserves the billable amount at submit (provider list x 1.25 for each model), and usage.cost on the finished job is the Sume billable amount. A canceled job did not complete, and the docs we read do not state the refund rule for it, so confirm the final charge on your own job record before you tell anyone it is free. The reserve itself is easy to work out.
Reserve by length and resolution
Per-second rates are $0.0625 at 480p, $0.125 at 720p and $0.25 at 1080p, so the reserve scales with length and resolution.
| Length | 480p | 720p | 1080p |
|---|---|---|---|
| 5 s | $0.3125 | $0.625 | $1.25 |
| 15 s | $0.9375 | $1.875 | $3.75 |
| 30 s | $1.875 | $3.75 | $7.50 |
Rules that save money
Two practical rules follow. Draft at 480p so that a wrong prompt wastes $1.875, not $7.50. And when you queue a batch, look at the first finished clip before the rest of the queue starts if your plan is small: if it is wrong, the queued jobs are cancelable and the cost of the mistake is limited to the clips already running.
Build the cancel path ahead of time
Build cancel into your tooling before you need it. Keep the job id, status URL and cancel URL for every submit; the accepted envelope includes status_url, result_url, events_url and cancel_url. A dashboard or script that can cancel a whole batch in one command is worth having on the day a prompt turns out to be wrong.
Cancel is also an ownership question. A job belongs to the member whose key created it, and only that member can cancel it. If a teammate's key started the batch, you cannot cancel their jobs with yours; reads of jobs the key did not create return 404 not_found.
A cheaper habit than cancel
Prevention beats cancellation. Run one 2 second proof job at 480p before a batch: it costs 2 x $0.0625 = $0.125 and shows whether the prompt and references behave. A proof of $0.125 against a $7.50 batch element is a 1.7 percent premium on that one element.
After the window closes
If a cancel is not possible, the job completes and you decide what to keep. A webhook (see the webhooks docs) will tell you when it ends. Sources: Jobs and results, Generation admission and the Video Router docs.
Sources
Related posts
More in Developers
- Cancel a queued avatar creation job before generation starts
Cancel a Sume avatar creation job with POST /v1/jobs/{id}/cancel. It works only before generation starts; later you get 409. Only the creator can cancel.
- Cancel video jobs still queued after 10 minutes: handle the 409
A Python sweeper that cancels Sume video jobs queued too long. POST /v1/jobs/{id}/cancel works only before generation starts; the 409 means keep waiting.
- canceled vs cancelled: one letter that breaks video status checks
Sume native jobs say canceled and send job.canceled. The OpenRouter-shaped /v1/videos response says cancelled. Normalize the spelling before you branch.
- Sume 501 capability_not_configured: no job started, no credits spent
501 capability_not_configured means that feature is not connected on the platform. No job starts and nothing is charged. Do not retry; contact support.
Written by Sume