# Retry without duplicating work

Recover the original request before deciding to start another paid extraction. A lost connection is not evidence that the service rejected the request.

## Preserve the original identity

Keep the operation ID, URL, options, original request body and original `Idempotency-Key`. Do not put credentials in your recovery notes. The worksheet below is a personal record, not an API request or service configuration. Its uppercase entries identify values to record, not literal service values.

```yaml
service: SERVICE_NAME
operation_id: OPERATION_ID
idempotency_key: ORIGINAL_KEY
request_body_file: path/to/original-request.json
version: EXACT_VERSION_IF_APPLICABLE
last_observed_state: STATE
```

## Recover in the workbench

1. Keep the current **Page request** open. Do not clear it with **New request** while acceptance is uncertain.
2. If an operation ID was received, choose **Check existing operation** or **Check selected request**. Confirm the same ID and URL.
3. If only the submission was retained, choose **Check existing submission**. This checks the original body and request identity rather than starting an unrelated request.
4. If a completed result is returned, inspect it. If the operation failed, read its saved error before deliberately submitting new work.

## API retry rules

Read an existing ID first. If no ID was received, replay the original body using the original key. A matching replay returns the stored operation; it does not guarantee success or rerun a failed extraction. A changed body with the old key can return `idempotency_conflict`. Restore the original body to recover that attempt; use a new key only when the URL or options intentionally define new work.

## When to stop retrying

Authentication, paid entitlement, robots restrictions and private-URL refusals need their own correction. Repeating a request does not grant access. On service failure, retain the evidence and retry the read after recovery. Check the [operation state reference](/docs/zilch/read-extraction-operation-states) before using any result.
