> ## Documentation Index
>
> Fetch the complete documentation index at: https://lithi.ai/llms.txt
>
> Use this file to discover all available pages before exploring further.

---
title: Cancel a running job
description: >-
  How to request a cancellation, why a request is not a completed cancellation,
  what happens to in-flight and already accepted units, and what your statement
  still reflects afterwards.
route: /docs/compute/jobs/cancellation
page_id: docs-compute-jobs-cancellation
page_type: howTo
content_layer: guided documentation
surface_profile: guided_docs
audience: Compute customers stopping work that is already running
voice: D
reader_question: What happens when I cancel, and what am I still charged for?
primary_action: Confirm a cancellation actually completed
source_locale: en-US
source_status: APPROVED
source_version: docs-compute-jobs-cancellation-en-us-2026-09-05-v1
last_updated: '2026-09-05'
robots: index
claim_registry_pinned: true
claim_registry_resync: "npm run governed:tsx -- scripts/build-compute-public-claim-registry.ts --write"
---

## Before you cancel

You need the job identifier and an identity with the scope that submitted the work. Cancellation acts on the current run only. It does not withdraw a quote, an approval or an issued statement.

## Request the cancellation

Cancellation is requested on the same work surface you submitted from. The exact operation name for your client is listed in the API description you download from the portal. Read it there rather than assuming a name.

One request is enough. Repeating it does not cancel harder, and it does not shorten what follows.

## A request is not a completed cancellation

Your request moves the job to `CANCELLING`. That state means the request was accepted, not that work has stopped.

The terminal state is `CANCELLED`. Only a reading that shows a terminal state closes the job, and stages settle into `CANCELLED` or `SKIPPED` as they stop.

## In-flight and already accepted units

A unit already in flight runs to a safe point rather than being torn out mid-write. A unit already accepted stays accepted, permanently.

Cancellation stops new work being started. It never erases work that has already been accepted, and no reading will later show fewer accepted units than a previous reading did.

## What happens to your results

A canceled job still writes its result bundle. Accepted output sits under `data/`, typed failures under `failures/`, and `result-manifest.json` is still written last as the only complete-bundle marker.

Your download authority and your retention settings are unchanged by canceling. The bundle is smaller than a completed run's, not different in kind.

## What you are charged for

Accepted work is charged under the commercial policy stated on your quote. Canceling does not make completed work free, and this page will not pretend otherwise.

What canceling does is stop the charge growing. The maximum price on your quote remains the ceiling it always was. Your statement and the receipt reference are the record of the actual amount.

## When completion and cancellation race

A job can reach `SUCCEEDED` or `PARTIAL` before `CANCELLING` settles. Both requests were valid, and they crossed.

This is not a lost cancellation and not a defect. Accepted work is never erased and the charge is never restated, so the terminal state plus the manifest is the true account of the run. Read [the job's current counts and stage](/docs/compute/jobs/status-and-events) to confirm which terminal state it reached, then check [what your statement shows](/docs/compute/billing/usage-and-statements).
