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

# Run Cancelled

> The run was deliberately cancelled before it reached a final answer.

**Surface:** `GET /agents/runs/{id}`, `error.type = "AgentLoopCancelled"`

## When this error occurs

This is not a failure — it marks a run whose underlying workflow execution was **cancelled**
before it converged. Cancellation is a deliberate action (an operator or an automated process
cancelled the run's Temporal workflow), as opposed to the run hitting a genuine error.

A cancelled run shares the `failed` status with real errors, but carries this reserved
`error.type` so you can tell the two apart: `AgentLoopCancelled` means "stopped on purpose,"
not "broke."

When a run is cancelled, the platform also cancels its in-flight inference job in the data
plane, so the run row and the data-plane job end up in a consistent cancelled state — no orphan
job keeps running after the run is gone.

## How to handle it

Nothing is broken, so there is nothing to fix:

* **You expected the cancellation** — treat the run as stopped. Any partial work
  (`iterations_used`, `usage`, the message turns produced before the cancel) is preserved on
  the run row and in the conversation's message stream.
* **You did not expect it** — someone or something cancelled this run's workflow. Check who
  issued the cancel (operations tooling, a deploy that drained workers, a client-initiated
  abort). The conversation itself is intact; start a fresh run on it to continue from where the
  message stream left off.
