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

# مرجع الأخطاء

> جميع الأخطاء التي يمكن أن تُرجعها واجهة Living Security البرمجية العامة /v1، مع رمز الجهاز الثابت الخاص بكل خطأ، ورمز حالة HTTP، وطريقة حله.

كل استجابة خطأ من `/v1` هي `application/problem+json` ‏([RFC 9457](https://www.rfc-editor.org/rfc/rfc9457)) بمجموعة ثابتة من الحقول:

```json theme={null}
{
  "type": "https://docs.livingsecurity.com/developers/v1/errors/resource_not_found",
  "title": "Not Found",
  "status": 404,
  "detail": "No such organization.",
  "code": "resource_not_found",
  "request_id": "req_...",
  "doc_url": "https://docs.livingsecurity.com/developers/v1/errors/resource_not_found",
  "retryable": false
}
```

اعتمد في التفرّع المنطقي على `code` وليس على `detail` — فـ`code` عقد ثابت للتعامل الآلي، أما `detail` فهو مخصص للقراءة البشرية وقد يتغير. يظهر `param` عندما يكون الخطأ ناتجًا عن معلمة محددة في الطلب. أدرج `request_id` عند التواصل مع الدعم.

## رموز الأخطاء

| الرمز | رمز حالة HTTP | قابل لإعادة المحاولة |
| - | - | - |
| [`unauthorized`](/ar/developers/v1/errors/unauthorized) | 401 | لا |
| [`credential_inactive`](/ar/developers/v1/errors/credential_inactive) | 401 | لا |
| [`credential_expired`](/ar/developers/v1/errors/credential_expired) | 401 | لا |
| [`credential_revoked`](/ar/developers/v1/errors/credential_revoked) | 401 | لا |
| [`not_entitled`](/ar/developers/v1/errors/not_entitled) | 403 | لا |
| [`insufficient_permission`](/ar/developers/v1/errors/insufficient_permission) | 403 | لا |
| [`permission_denied`](/ar/developers/v1/errors/permission_denied) | 403 | لا |
| [`resource_not_found`](/ar/developers/v1/errors/resource_not_found) | 404 | لا |
| [`invalid_request`](/ar/developers/v1/errors/invalid_request) | 400 أو 409 | لا |
| [`invalid_filter`](/ar/developers/v1/errors/invalid_filter) | 400 | لا |
| [`unsupported_version`](/ar/developers/v1/errors/unsupported_version) | 400 | لا |
| [`idempotency_key_reuse`](/ar/developers/v1/errors/idempotency_key_reuse) | 409 | بحسب طبيعة التعارض |
| [`rate_limited`](/ar/developers/v1/errors/rate_limited) | 429 | نعم |
| [`service_unavailable`](/ar/developers/v1/errors/service_unavailable) | 503 | نعم |
| [`internal_error`](/ar/developers/v1/errors/internal_error) | 500 | نعم |

مجموعة الرموز مغلقة: فإضافة رموز جديدة تُعد تغييرًا في العقد العام ويُعلن عنها عبر سجل تغييرات الواجهة البرمجية. تشير الاستجابة `retryable: true` إلى أن الحالة قد تزول، لكنها لا تثبت أن عملية الكتابة لم يكن لها أي أثر. أعد محاولة طلبات القراءة ضمن عدد محدود من المحاولات وميزانية زمنية محدودة، مع التراجع الأسي والتشويش العشوائي (jitter). التزم بـ`Retry-After` عند وجوده، بما في ذلك عند ورود `409` أو `429` قابل لإعادة المحاولة.

بالنسبة إلى عمليات التعديل، اتبع عقد قابلية التكرار الآمن (idempotency) والاسترداد الموثّق للعملية. احتفظ بالمفتاح الأصلي والطلب الأصلي عند توفر الدعم لذلك. لا تُنشئ مفتاحًا جديدًا بعد انتهاء المهلة أو `5xx`: فقد يؤدي ذلك إلى تكرار عملية كتابة ناجحة. ولا يوفّر الترويس `Idempotency-Key` أي حماية في عملية لا تدعمه.


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