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

> Resolva conflitos HTTP 409: distinga uma solicitação ainda em execução de uma Idempotency-Key reutilizada com dados de entrada diferentes.

| | |
| - | - |
| **Código** | `idempotency_key_reuse` |
| **Status HTTP** | `409 Conflict` |
| **Pode ser repetida** | Consulte `retryable` na resposta |

## Escolha a recuperação adequada

O mesmo código de erro descreve duas situações distintas. Verifique `retryable` antes de
agir; o status HTTP, por si só, não indica se é necessário tentar novamente.

| Resposta | Significado | Próxima etapa |
| - | - | - |
| `retryable: false` | A chave já identifica uma solicitação com dados de entrada diferentes. | Compare o corpo com o da solicitação original. Use uma nova chave somente para uma operação intencionalmente diferente. |
| `retryable: true` | Outra solicitação que usa a chave ainda está em processamento. | Mantenha a mesma chave e a mesma solicitação. Aguarde pelo menos `Retry-After` segundos e, em seguida, tente novamente dentro de um limite de tempo definido. |

### Dados de entrada diferentes

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

### Solicitação ainda em processamento

Este exemplo também inclui o cabeçalho de resposta 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"
}
```

## Mantenha estável a identidade de repetição

Para as operações que documentam idempotência, a chave tem como escopo a organização,
a conta de serviço, o método HTTP, o caminho do recurso e a versão da API resolvida. A alteração
de qualquer um desses elementos cria uma identidade de repetição diferente e não recupera a operação
original. A rotação de uma credencial na mesma conta de serviço não altera
essa identidade, embora a credencial substituta ainda precise ter permissão.

Mantenha a chave, o corpo, o caminho e a versão originais ao se recuperar de um timeout.
Não gere uma nova chave apenas para contornar um conflito: a gravação original
pode já ter sido concluída com sucesso. Recupere o recurso quando o respectivo ID for conhecido e utilize
o procedimento de recuperação documentado da operação. Uma reprodução concluída inclui
`Idempotent-Replayed: true` quando a operação documenta a reprodução de resposta.

O envio de `Idempotency-Key` não torna uma operação idempotente, a menos que a
respectiva referência ofereça suporte explícito a esse cabeçalho. A proteção contra repetição é limitada pela
política de retenção da operação; não constitui uma garantia permanente contra duplicidades.

Se o processamento permanecer sem solução, entre em contato com o [Suporte da Living Security](mailto:support@livingsecurity.com)
informando `request_id`, o carimbo de data e hora em UTC, o método, o caminho e a versão da API. Nunca inclua
uma chave de API, um segredo de cliente nem um token de acesso.


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