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

> HTTP 409 の競合を解決します。実行中のリクエストと、異なる入力で再利用された Idempotency-Key を区別します。

| | |
| - | - |
| **コード** | `idempotency_key_reuse` |
| **HTTP ステータス** | `409 Conflict` |
| **再試行可否** | レスポンス内の `retryable` を確認してください |

## 適切な復旧方法の選択

同じエラーコードが、2 つの異なる状況を示します。対応する前に `retryable` を確認してください。HTTP ステータスだけでは、再試行すべきかどうかを判断できません。

| レスポンス | 意味 | 次の手順 |
| - | - | - |
| `retryable: false` | このキーは、異なる入力を持つリクエストをすでに識別しています。 | 本文を元のリクエストと比較してください。意図的に異なる操作を行う場合にのみ、新しいキーを使用してください。 |
| `retryable: true` | このキーを使用した別のリクエストがまだ処理中です。 | 同じキーと同じリクエストを維持してください。少なくとも `Retry-After` 秒待機してから、限られた時間の範囲内で再試行してください。 |

### 異なる入力

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

### リクエストの処理中

この例には、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"
}
```

## 再試行の識別情報を維持する

べき等性が記載されている操作では、キーのスコープは組織、サービスアカウント、HTTP メソッド、リソースパス、および解決済みの API バージョンに限定されます。これらのいずれかを変更すると、異なる再試行の識別情報になり、元の操作を復旧することはできません。同じサービスアカウントの資格情報をローテーションしても、この識別情報は変わりませんが、新しい資格情報にも必要な権限が付与されている必要があります。

タイムアウトから復旧する際は、元のキー、本文、パス、およびバージョンを維持してください。競合を回避するためだけに新しいキーを生成しないでください。元の書き込みがすでに成功している可能性があります。ID が判明している場合はリソースを取得し、その操作に記載されている復旧手順を使用してください。レスポンスのリプレイが記載されている操作では、完了したリプレイに `Idempotent-Replayed: true` が含まれます。

`Idempotency-Key` を送信しても、そのヘッダーのサポートがリファレンスに明記されていない限り、操作がべき等になるわけではありません。再試行の保護は、操作の保持ポリシーの範囲内に限られます。重複に対する恒久的な保証ではありません。

処理が未解決のままの場合は、`request_id`、UTC のタイムスタンプ、メソッド、パス、および API バージョンを添えて、[Living Security サポート](mailto:support@livingsecurity.com)までお問い合わせください。API キー、クライアントシークレット、アクセストークンは絶対に含めないでください。


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