Replicate aborted vs canceled prediction: Sume cancel and 409
Replicate bills a canceled prediction for run time, not an aborted one. Sume cancels only before generation starts, then returns 409.

On Replicate, a deadline hit before a prediction starts gives aborted and no charge; after it starts, canceled and you pay for run time. Sume has no aborted status. A cancel works only before generation starts; after that it returns 409 job_generation_already_started.
Replicate facts come from its prediction lifecycle page; Sume facts from Generation admission, Jobs and results and Errors and credits, read 2026-10-01.
How does Replicate split aborted from canceled?
The lifecycle page defines canceled as canceled by the user or past its deadline after starting, and aborted as past its deadline before it could start. Billing follows: aborted, never started, no charge; canceled, started, you pay for the time it ran. Predictions also time out after 30 minutes.
What does Sume do at the start boundary?
Cancellation succeeds only before generation work starts. Once generation has started the API returns 409 job_generation_already_started with details.cancelable: false, and the job completes or fails normally. Cancelling a job already canceled is idempotent and returns the same canceled job.
| Moment | Replicate | Sume |
|---|---|---|
| Before generation starts | aborted on deadline | Cancel succeeds; job becomes canceled |
| After generation starts | canceled on deadline or user cancel | 409 job_generation_already_started; job runs on |
| Repeat cancel | Not covered on the page read | Idempotent, same canceled job |
Which Sume statuses exist?
Job status values are queued, processing, completed, failed, canceled. The 409 family covers job_not_completed, job_not_cancelable and job_generation_already_started, each meaning the operation is not valid for the current status.
What should I do to avoid a started job I do not want?
Cancel queued jobs you no longer need before they start processing, since there is no cancel after that. These pages do not cover how a started job is billed, so read the billing docs before relying on a cost assumption. A local timeout is not a reason to submit again; see cancel AI video jobs and runs.
Sources
Related posts
- Codex instant_interrupt mid jobs_wait: Sume jobs keep running
- 409 job_not_completed: why the result call fails and what to poll
- Replicate webhook_events_filter on Sume: terminal events only
- How to cancel an AI video generation job or run with the Sume API
- fal vs Replicate: how calls, webhooks and billing differ
More in Developers
- Replicate webhook URL custom id vs Sume job_id as the key
Replicate suggests a query param like customId on the webhook URL. Sume bodies carry request_id and job_id, and job_id is the receiver's idempotency key.
- Retool concurrency 100, burst 200, and Sume bulk runs
Retool cloud workflows list concurrency 100 and burst 200. Sume bulk runs take 1-100 items at concurrency 1-16, so one bulk call fits a Retool budget.
- Retool resource block 10-minute limit and Sume async jobs
Retool async resource blocks stop at 10 minutes. Submit the Sume job in async or webhook mode, return the job id, and finish in a separate step or workflow.
- Rime Arcana retired: use Coda; Sume TTS Router model_not_found
Rime retired Arcana on 2026-08-15 and serves arcana ids with Coda. Sume's TTS Router fails unknown model ids with 400 model_not_found; check the catalog.
Written by Sume