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

# idempotency_key_reuse

> Résolvez les conflits HTTP 409 : distinguez une requête toujours en cours de traitement d'une Idempotency-Key réutilisée avec des données d'entrée différentes.

| | |
| - | - |
| **Code** | `idempotency_key_reuse` |
| **État HTTP** | `409 Conflict` |
| **Nouvelle tentative possible** | Lisez `retryable` dans la réponse |

## Choisir la bonne reprise

Le même code d'erreur décrit deux situations différentes. Vérifiez `retryable` avant
d'agir; l'état HTTP seul ne vous indique pas s'il faut effectuer une nouvelle tentative.

| Réponse | Signification | Prochaine étape |
| - | - | - |
| `retryable: false` | La clé identifie déjà une requête dont les données d'entrée sont différentes. | Comparez le corps de la requête avec celui de la requête d'origine. N'utilisez une nouvelle clé que pour une opération intentionnellement différente. |
| `retryable: true` | Une autre requête utilisant la clé est toujours en cours de traitement. | Conservez la même clé et la même requête. Attendez au moins `Retry-After` secondes, puis effectuez une nouvelle tentative dans les limites d'un délai borné. |

### Données d'entrée différentes

```json theme={null}
{
  "type": "https://docs.livingsecurity.com/developers/v1/errors/idempotency_key_reuse",
  "title": "Conflict",
  "status": 409,
  "detail": "Idempotency-Key was already used with a different request.",
  "code": "idempotency_key_reuse",
  "request_id": "req_0199a1e0-7c00-7000-8000-000000000001",
  "doc_url": "https://docs.livingsecurity.com/developers/v1/errors/idempotency_key_reuse",
  "retryable": false,
  "param": "Idempotency-Key"
}
```

### Requête toujours en cours de traitement

Cet exemple comprend également l'en-tête de réponse HTTP `Retry-After: 1`.

```json theme={null}
{
  "type": "https://docs.livingsecurity.com/developers/v1/errors/idempotency_key_reuse",
  "title": "Conflict",
  "status": 409,
  "detail": "A concurrent request is still processing this Idempotency-Key. Retry shortly.",
  "code": "idempotency_key_reuse",
  "request_id": "req_0199a1e0-7c00-7000-8000-000000000001",
  "doc_url": "https://docs.livingsecurity.com/developers/v1/errors/idempotency_key_reuse",
  "retryable": true,
  "param": "Idempotency-Key"
}
```

## Conserver une identité de nouvelle tentative stable

Pour les opérations dont la documentation prévoit l'idempotence, la clé est limitée à l'organisation,
au compte de service, à la méthode HTTP, au chemin de la ressource et à la version de l'API résolue. La modification de
l'un de ces éléments crée une identité de nouvelle tentative différente; elle ne permet pas de récupérer l'opération
d'origine. La rotation d'un identifiant d'accès sous le même compte de service ne modifie pas
cette identité, bien que l'identifiant de remplacement doive tout de même disposer des autorisations requises.

Conservez la clé, le corps, le chemin et la version d'origine lors d'une reprise après un délai d'attente dépassé.
Ne générez pas une nouvelle clé dans le seul but de contourner un conflit : l'écriture d'origine
a peut-être déjà réussi. Récupérez la ressource lorsque son ID est connu et utilisez
la procédure de reprise documentée de l'opération. Une relecture terminée comporte
`Idempotent-Replayed: true` lorsque l'opération documente la relecture de réponse.

L'envoi d'un `Idempotency-Key` ne rend pas une opération idempotente, sauf si sa
référence prend explicitement en charge cet en-tête. La protection contre les nouvelles tentatives est limitée par la
politique de conservation de l'opération; elle ne constitue pas une garantie permanente contre les doublons.

Si le traitement reste non résolu, communiquez avec [l'assistance de Living Security](mailto:support@livingsecurity.com)
en indiquant `request_id`, l'horodatage UTC, la méthode, le chemin et la version de l'API. N'incluez jamais
de clé d'API, de secret client ni de jeton d'accès.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.