Cancel a queued H3 Max Recast job: when you get a 409

You can cancel a Sume job only before generation starts. A queued Recast cancels cleanly; one already running returns 409 job_generation_already_started.

4 min readSume
All posts

Cancel works only before the work starts

Sume's Jobs and results page says cancellation succeeds only before generation work starts. Once generation has started, POST /v1/jobs/{id}/cancel returns 409 job_generation_already_started with details.cancelable: false, and the job runs to completion. Cancelling a job that is already canceled returns the same canceled job.

For Recast that matters because the price is per second of source video: fal's page, read 2026-10-03, lists $0.30 at 768p and $0.45 at 1080p.

When a job is still cancellable

A paid job is queued when your workspace is at its processing limit. The Generation admission page says processing concurrency is 1 on Free, 4 on Pro, 8 on Startup, 20 on Scale, and queue capacity defaults to the greater of 3 or five times the concurrency limit. A queued job has not started, so a cancel can still succeed. Check the dashboard value rather than the table, since overrides exist.

Only the member who created the job can cancel it.

curl -X POST https://api.sume.com/v1/jobs/job_123/cancel \
  -H "Authorization: Bearer $SUME_API_KEY"

Handling the 409

  • Treat job_generation_already_started as information, not an error to retry. The job continues and will bill.
  • Stop polling is not canceling: a client-side timeout leaves the job running.
  • Store the job id at submit so you can cancel or read the result later.
  • A cancel before generation starts is the only way to avoid the charge. Preview the cost before submitting a long clip.

A safer pattern for long clips

Check the price before you submit a 25 or 30 second clip, not after. Trim to the part that needs the swap: Recast bills by source seconds and keeps the source length, so a shorter source is a smaller charge. If you must submit first and decide later, submit async and read the status straight away; a status of queued is the window in which cancel can still work.

Remember that a cancel is a request that the platform evaluates at the moment it arrives. Your client cannot know whether the worker has just picked the job up, so handle both outcomes: a canceled job, and a 409 that tells you to wait for the result.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume