# idempotency_key_required

> Idempotency-Key header is required. Every request that changes something must carry an Idempotency-Key, so a retry after a network blip can never do the same thing twice.

**Idempotency-Key header is required.** Every request that changes something must carry an `Idempotency-Key`, so a retry after a network blip can never do the same thing twice.

- **HTTP status:** `400 Bad Request`
- **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

Add an Idempotency-Key header with a fresh UUID to every POST, PATCH and DELETE.

## What the response looks like

```json
{
  "type": "https://guv.dev/errors/idempotency_key_required",
  "title": "Idempotency-Key header is required",
  "status": 400,
  "code": "idempotency_key_required",
  "detail": "Every request that changes something must carry an `Idempotency-Key`, so a retry after a network blip can never do the same thing twice.",
  "fix": "Add an Idempotency-Key header with a fresh UUID to every POST, PATCH and DELETE.",
  "docs_url": "https://guv.dev/errors/idempotency_key_required",
  "request_id": "req_01jbx2m9k7q4r8t5v6w3y0z1rq"
}
```

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