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

# recover

> Contract, placement, related fields and source examples for this Nika YAML field.

[Language reference](/reference/language/overview) / `recover`

## Meaning and placement

### onError

Recovery output · a `$&#123;&#123; &#125;&#125;` ref OR a literal (merges the former fallback/value per spec/05-errors.md).

| Property        | Declaration                         |
| --------------- | ----------------------------------- |
| Requirement     | Optional in this object             |
| Schema location | `/$defs/onError/properties/recover` |

**In the same object:** [on\_codes](/reference/language/words/on_codes) · [skip](/reference/language/words/skip)

[Schema source (use the pointer above)](https://github.com/supernovae-st/nika-spec/blob/c5ebbb7b862b68bc6cf7235efba61173b844afc6/schemas/workflow.schema.json)

## In a source template

Excerpt from `templates/api-upload-and-create.nika.yaml`, source lines 93–99. This is a fragment, not a runnable workflow.

```yaml illustration theme={"system"}
      # projects, so `outputs.result` has the same shape on both paths. Delete
      # the block once the key is wired, so an unset key is loud as well.
      on_codes: [NIKA-VAR-001]
      recover: { id: "rehearsal-0001", url: "https://app.example.com/items/rehearsal-0001" }

outputs:
  result: ${{ tasks.create.output }}   # SLOT: the callable contract
```

### Templates containing this field

| Template                                    | Source                                                                                                                                            |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `templates/api-upload-and-create.nika.yaml` | [Line 96](https://github.com/supernovae-st/nika-spec/blob/c5ebbb7b862b68bc6cf7235efba61173b844afc6/templates/api-upload-and-create.nika.yaml#L96) |
| `templates/chain.nika.yaml`                 | [Line 60](https://github.com/supernovae-st/nika-spec/blob/c5ebbb7b862b68bc6cf7235efba61173b844afc6/templates/chain.nika.yaml#L60)                 |
| `templates/docker-report.nika.yaml`         | [Line 60](https://github.com/supernovae-st/nika-spec/blob/c5ebbb7b862b68bc6cf7235efba61173b844afc6/templates/docker-report.nika.yaml#L60)         |
| `templates/etl-state.nika.yaml`             | [Line 82](https://github.com/supernovae-st/nika-spec/blob/c5ebbb7b862b68bc6cf7235efba61173b844afc6/templates/etl-state.nika.yaml#L82)             |
| `templates/fanout.nika.yaml`                | [Line 106](https://github.com/supernovae-st/nika-spec/blob/c5ebbb7b862b68bc6cf7235efba61173b844afc6/templates/fanout.nika.yaml#L106)              |
| `templates/gate-and-act.nika.yaml`          | [Line 63](https://github.com/supernovae-st/nika-spec/blob/c5ebbb7b862b68bc6cf7235efba61173b844afc6/templates/gate-and-act.nika.yaml#L63)          |
| `templates/human-gated-ship.nika.yaml`      | [Line 106](https://github.com/supernovae-st/nika-spec/blob/c5ebbb7b862b68bc6cf7235efba61173b844afc6/templates/human-gated-ship.nika.yaml#L106)    |
| `templates/media-asset-pack.nika.yaml`      | [Line 86](https://github.com/supernovae-st/nika-spec/blob/c5ebbb7b862b68bc6cf7235efba61173b844afc6/templates/media-asset-pack.nika.yaml#L86)      |
| `templates/website-brief.nika.yaml`         | [Line 59](https://github.com/supernovae-st/nika-spec/blob/c5ebbb7b862b68bc6cf7235efba61173b844afc6/templates/website-brief.nika.yaml#L59)         |

These are literal key occurrences in the source files, not an execution or conformance claim. [How to instantiate a template](/guides/templates).

## Contract and implementation

This page projects the named specification revision. Check [released engine status](/reference/status) and [the validation workflow](/guides/agent-authoring) before running a file. An optional field is not evidence that every engine supports every value.

Canonical identity: `language:word:recover`. Spec revision: [`c5ebbb7b862b`](https://github.com/supernovae-st/nika-spec/tree/c5ebbb7b862b68bc6cf7235efba61173b844afc6).

[How documentation stays connected](/reference/knowledge-system).
