> ## 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

> Risolvere i conflitti HTTP 409: distinguere una richiesta ancora in corso da un Idempotency-Key riutilizzato con input diversi.

| | |
| - | - |
| **Codice** | `idempotency_key_reuse` |
| **Stato HTTP** | `409 Conflict` |
| **Ripetibile** | Leggere `retryable` nella risposta |

## Scegliere il corretto ripristino

Lo stesso codice di errore descrive due situazioni diverse. Controllare `retryable` prima di
agire; lo stato HTTP da solo non indica se sia opportuno riprovare.

| Risposta | Significato | Passo successivo |
| - | - | - |
| `retryable: false` | La chiave identifica già una richiesta con input diversi. | Confrontare il corpo con la richiesta originale. Utilizzare una nuova chiave solo per un'operazione volutamente diversa. |
| `retryable: true` | Un'altra richiesta che utilizza la chiave è ancora in elaborazione. | Mantenere la stessa chiave e la stessa richiesta. Attendere almeno `Retry-After` secondi, quindi riprovare entro un limite di tempo definito. |

### Input diversi

```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"
}
```

### Richiesta ancora in elaborazione

Questo esempio include anche l'intestazione di risposta 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"
}
```

## Mantenere stabile l'identità del nuovo tentativo

Per le operazioni che documentano l'idempotenza, la chiave ha come ambito l'organizzazione,
l'account di servizio, il metodo HTTP, il percorso della risorsa e la versione API risolta. La modifica di
uno qualsiasi di questi elementi crea un'identità di nuovo tentativo diversa e non consente di ripristinare l'operazione
originale. La rotazione di una credenziale con lo stesso account di servizio non modifica
tale identità, anche se la credenziale sostitutiva deve comunque disporre delle autorizzazioni necessarie.

In caso di timeout, mantenere la chiave, il corpo, il percorso e la versione originali.
Non generare una nuova chiave al solo scopo di superare un conflitto: la scrittura originale
potrebbe essere già riuscita. Recuperare la risorsa quando ne è noto l'ID e utilizzare
la procedura di ripristino documentata per l'operazione. Una ripetizione completata include
`Idempotent-Replayed: true` laddove l'operazione documenti la riproduzione della risposta.

L'invio di un `Idempotency-Key` non rende idempotente un'operazione, a meno che la relativa
documentazione di riferimento non supporti esplicitamente tale intestazione. La protezione dai nuovi tentativi è limitata dalla
politica di conservazione dell'operazione e non rappresenta una garanzia permanente contro i duplicati.

Se l'elaborazione rimane irrisolta, contattare il [supporto di Living Security](mailto:support@livingsecurity.com)
indicando `request_id`, timestamp UTC, metodo, percorso e versione API. Non includere mai
una chiave API, un client secret o un token di accesso.


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