> ## 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` في الاستجابة |

## اختيار إجراء الاسترداد المناسب

يصف رمز الخطأ نفسه حالتين مختلفتين. تحقق من `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"
}
```

## الحفاظ على ثبات هوية إعادة المحاولة

بالنسبة إلى العمليات التي يوثَّق فيها دعم idempotency، يقتصر نطاق المفتاح على المؤسسة
وحساب الخدمة وطريقة HTTP ومسار المورد وإصدار API الذي تم تحديده. وتغيير
أي عنصر من هذه العناصر ينشئ هوية مختلفة لإعادة المحاولة؛ ولا يؤدي إلى استرداد العملية
الأصلية. ولا يؤدي تدوير بيانات اعتماد ضمن حساب الخدمة نفسه إلى تغيير
هذه الهوية، مع أنه يجب أن تملك بيانات الاعتماد البديلة الصلاحيات اللازمة.

احتفظ بالمفتاح والمحتوى والمسار والإصدار الأصلية عند الاسترداد بعد انتهاء المهلة.
لا تنشئ مفتاحًا جديدًا لمجرد تجاوز التعارض؛ فقد تكون عملية الكتابة الأصلية
قد نجحت بالفعل. استرجع المورد عندما يكون معرّفه معروفًا، واتبع
إجراء الاسترداد الموثّق للعملية. وتتضمن الاستجابة المعاد تشغيلها بعد اكتمال العملية
`Idempotent-Replayed: true` عندما توثّق العملية إعادة تشغيل الاستجابة.

إن إرسال `Idempotency-Key` لا يجعل العملية idempotent ما لم يذكر
مرجعها صراحةً أنها تدعم هذه الترويسة. والحماية من إعادة المحاولة محدودة بسياسة الاحتفاظ
الخاصة بالعملية؛ وليست ضمانًا دائمًا ضد التكرار.

إذا بقيت المعالجة دون حل، فتواصل مع [دعم Living Security](mailto:support@livingsecurity.com)
وزوّدهم بـ `request_id` والطابع الزمني بتوقيت UTC والطريقة والمسار وإصدار API. لا تُدرج أبدًا
مفتاح API أو سر العميل أو رمز الوصول.


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