# Problem

> RFC 9457 problem details with Guv extensions.

RFC 9457 problem details with Guv extensions. `code` is stable and listed in `x-guv-error-codes`. Clients must treat unknown codes as generic errors of that HTTP status.

## Fields

| Field | Type | Description |
| --- | --- | --- |
| `type` * | string (uri) |  |
| `title` * | string |  |
| `status` * | integer |  |
| `code` * | string |  |
| `detail` * | string | Plain-English explanation of this occurrence. |
| `fix` | string or null | A suggested command or API call that resolves the problem. |
| `docs_url` | string (uri) |  |
| `instance` | string | The request path. |
| `request_id` | string |  |
| `errors` | array of [FieldError](/docs/api/objects/field-error/) |  |
| `approval` | [ApprovalRef](/docs/api/objects/approval-ref/) |  |
| `policy` | [PolicyDecision](/docs/api/objects/policy-decision/) |  |
| `retry_after_seconds` | integer |  |
| `error` | string | OAuth 2.0 error code, set on `/v1/auth/token` responses for RFC 6749/8628 compatibility. |
| `error_description` | string |  |

\* always present

## Example

```json
{
  "type": "https://guv.dev/errors/secret_missing",
  "title": "A secret this needs has not been set",
  "status": 422,
  "code": "secret_missing",
  "detail": "Service web references secret://stripe-secret-key, which is not set in production.",
  "fix": "guv secrets set stripe-secret-key --env production",
  "docs_url": "https://guv.dev/errors/secret_missing",
  "instance": "/v1/projects/primecarers/manifest/plan",
  "request_id": "req_01jbx2m9k7q4r8t5v6w3y0z1rq"
}
```
