# secret_missing

> A secret this needs has not been set. A service refers to a secret (secret://name) that has not been set in this environment.

**A secret this needs has not been set.** A service refers to a secret (`secret://name`) that has not been set in this environment. Guv will not start the service without it, rather than start it with an empty value.

- **HTTP status:** `422 Unprocessable Content`
- **CLI exit code:** `2` (the request or file is not valid)
- **Retry:** not as it is; the same request will fail the same way until the cause is fixed

## How to fix it

```bash
guv secrets set {name} --env {environment}
```

1. Set the secret with `guv secrets set <name> --env <environment>`. The CLI prompts for the value so it never appears in your shell history.
2. Deploy again.

Words in `{braces}` are filled in from the error response, which names the exact resource.

## If you are an AI agent

Never ask the user to paste a secret value into the chat. Ask them to run `guv secrets set` themselves, or to use the dashboard.

## What the response looks like

```json
{
  "type": "https://guv.dev/errors/secret_missing",
  "title": "A secret this needs has not been set",
  "status": 422,
  "code": "secret_missing",
  "detail": "A service refers to a secret (`secret://name`) that has not been set in this environment.",
  "fix": "guv secrets set {name} --env {environment}",
  "docs_url": "https://guv.dev/errors/secret_missing",
  "request_id": "req_01jbx2m9k7q4r8t5v6w3y0z1rq"
}
```

The `code` field is stable: match on it, not on `title` or `detail`, which may be reworded.
