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

# Sandbox fixture reference

> Deterministic terminal outcomes with zero provider egress.

`test_scenario` is a top-level run request field for clean-room contract tests.
It is never inferred from customer input and is omitted from polling and
webhook responses.

| Value       | Terminal poll status | Webhook event                                   |
| ----------- | -------------------- | ----------------------------------------------- |
| `completed` | `completed`          | `run.completed`                                 |
| `degraded`  | `degraded`           | `run.completed` with `data.run.status=degraded` |
| `failed`    | `failed`             | `run.failed`                                    |

```json theme={null}
{
  "engine_version": "1.0",
  "test_scenario": "degraded",
  "input": {
    "request_id": "contract-check-degraded"
  }
}
```

Requirements:

* the credential has `runs:write` and `runs:test`
* the canonical environment kind is `sandbox`
* `engine_version` is an explicit exact `N.M`
* the resolved version and config hash exist in the supported-version registry

Fixture execution performs zero model or enrichment provider egress. It still
uses normal run admission and therefore consumes one monthly-cap unit. Webhook
secret rotation for the sandbox uses `sandbox-v1`, with five minutes of
previous-secret overlap.

Live use is rejected with `400 test_scenario_sandbox_only`. Other stable errors
are `403 test_scenario_forbidden`, `400 test_scenario_exact_version_required`,
`400 test_scenario_version_not_supported`, and `400 invalid_test_scenario`.
All rejection cases create no run, cap reservation, or queue job.
