Skip to main content
Cancel an async job that is still queued or currently being processed. This is useful when an inference batch was started with the wrong configuration, when a version’s endpoint is misconfigured, or when you simply need to stop a long-running job early to free up capacity.

Cancellation semantics

  • A queued or delayed job is removed from the queue and will never run.
  • An in-flight job receives a cooperative cancellation signal. The worker stops dispatching further work at its next checkpoint. Work already dispatched when the signal is observed is not rolled back.
  • Repeated cancels are idempotent: calling cancel() on an already-cancelled job still returns state='cancelled' rather than raising an error.

Usage

Check status before cancelling:

Parameters

string
required
The ID of the job to cancel. Returned as jobId in the response from evaluations.run().

Returns

A JobCancelResponse object:
string
The job ID.
string
Always "cancelled" on a successful response, whether this was the first or a repeated cancel request.

Errors

JobAlreadyTerminalException is only raised for jobs that finished (completed or failed). Jobs that were already cancelled return state='cancelled' with a 200 response — repeated cancels are safe to call without checking status first.