# Read extraction operation states

An operation is one recorded extraction attempt. Its identity stays the same while you inspect it. HTTP success describes the request to the service; `operation.state` describes the extraction.

## Documented states

| State | What is available | Next action |
| --- | --- | --- |
| `reserved` | A recorded request, not a completed document | Inspect the same operation again. |
| `completed` | `operation.result.markdown` and result metadata | Check provenance, warnings and truncation. |
| `failed` | A saved `operation.error` | Preserve it and diagnose before new work. |
| `cancelled` | A recorded cancellation, not completed Markdown | Keep the identity; do not treat cancellation as output. |

These are the four states in the public extraction contract. If a workbench reports another pending or unconfirmed state, retain its exact wording and operation ID; do not map it to success or invent an undocumented completion state.

## Inspect identity and outcome together

In the workbench, expand **Page request** and keep its **Operation ID**. Use **Check selected request** to inspect that request again. Check that the displayed requested page still matches the work you meant to follow. A status such as **Still pending** is a reason to keep inspecting, not to press **Read page** again.

The [MDN explanation of HTTP 202](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/202) explains the general distinction between acceptance and completion. It does not mean Zilch promises a `202` response: even HTTP `200` can carry a failed extraction.

A missing result on `completed`, an unexpected identity or an unreadable state needs [support](/docs/shared/support), not a fabricated empty document. See [output fields](/docs/zilch/extraction-reference) for what a usable result must contain.
