# X_JOB_NOT_CANCELLABLE

## Means

the job cannot be cancelled

## Typical cause

`x jobs cancel` reached a job that already finished, or an id no queue holds — not a failure of the command, but never a silent success either: an operator cancelling a runaway pass has to know whether they stopped it or missed it. Also raised by a driver with no `introspect.cancel` (the redis and nats stubs, and any hand-rolled driver)

## Fix

`x jobs list --state running --json` — for a driver that cannot cancel one job, drop the `jobs:` field from `apps/<app>/runtime.ts` so the boot installs `postgresJobDriver()` over `DATABASE_URL` — only the pg driver implements `introspect.cancel` — then `x jobs cancel <id> --json`

[Jobs](/error-codes#jobs)
