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

# Idempotency key reuse

> This `Idempotency-Key` was already used with a different request body.

This page is the resolution target of the RFC 9457 `type` URI on every `idempotency_key_reuse` problem body: `https://docs.get-exo.com/errors/idempotency_key_reuse`.

**HTTP status: `422` Unprocessable Content**.

```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
{
  "type": "https://docs.get-exo.com/errors/idempotency_key_reuse",
  "title": "Idempotency key reuse",
  "status": 422,
  "detail": "This Idempotency-Key was already used with a different request body.",
  "code": "idempotency_key_reuse",
  "requestId": "req_9f2c41ab7d0e5c18",
  "suggestedAction": "Use a new Idempotency-Key for each distinct request."
}
```

## Why it happens

A key is bound to the exact body it was first used with. Reusing it for different content is a client bug, and Exo refuses rather than replaying the wrong response or silently applying the new content.

This is checked before the in-flight state, so it fires whether or not the original request has finished.

## How to fix it

* Generate one key per distinct request, and reuse it only for retries of that same request.
* A UUID per logical operation is the usual pattern.

## Related

* [`idempotency_in_flight`](/errors/idempotency_in_flight)
* [`validation_error`](/errors/validation_error)
* [Errors](/platform/errors) for the envelope and the full catalogue
