Cancel a queued Seedance 2.5 job: it works only before it starts

POST /v1/jobs/{id}/cancel stops a queued seedance-2.5 job; once generation has started you get 409 job_generation_already_started and it still bills.

4 min readSume
All posts

You can cancel a seedance-2.5 job only while it is still queued. POST /v1/jobs/{id}/cancel succeeds before generation work starts; after that it returns 409 job_generation_already_started with details.cancelable: false, and the job runs to completion. Cancelling a job that is already canceled is idempotent and returns the same job.

The rules come from Sume's Jobs and results docs and Generation admission docs, read 2026-10-02. Seedance 2.5's 4-30 s range is from the Video Router docs.

When is a Seedance 2.5 job still cancelable?

Only while it waits. On a plan whose processing slots are full, new jobs sit in queued until a slot opens, which is the window in which cancel works. The job envelope has a cancelable boolean and a cancel_url, so read those instead of guessing.

Sume does not expose a per-job queue position or an ETA, so you cannot predict how long the window lasts.

Cancel outcomes from Sume's Jobs and results docs, read 2026-10-02.
Job stateResult of cancel
queuedSucceeds; job becomes canceled
processing, generation started409 job_generation_already_started, details.cancelable: false
Already canceledReturns the same canceled job
completed, failedNot cancelable

What does cancelling do to the bill?

Paid generation reserves the estimated amount when a request is accepted. Successful completion captures it; failed jobs and failed admission release or refund the reservation where applicable. A job you cancel while queued has not started generating, so there is no completed output to capture.

A job that has started keeps running and bills normally, and a client-side timeout does not cancel it. Stopping your poller only stops you watching.

When should I cancel instead of waiting?

Cancel queued work when the prompt was wrong, or when a full queue is blocking a batch. On a Free workspace with 1 processing slot and 5 queued, a bad prompt in the queue costs a slot until it runs; see the Free plan limits. After 429 queue_full, the docs say to cancel queued jobs you no longer need, then retry with the same Idempotency-Key.

Treat a 409 as information, not failure: it means the job is already running, so wait for it and use the clip or discard it.

In practice: submit with mode: "async", keep the job id and cancel_url, and decide quickly. The longer a job waits, the more likely it has moved to processing, at which point cancel is no longer possible and the only choices are to use the clip or ignore it.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume