أخطاء API وحدودها
تعامل مع رموز أخطاء Rivya API العامة، وقيم حالة HTTP، وحدود المعدل، وتعارضات idempotency، وقرارات إعادة المحاولة.
آخر مراجعة في 2026/05/11
تعيد Rivya API رموز أخطاء عامة مستقرة بصيغة JSON. تعامل مع قيمة error.code باعتبارها عقد التكامل.
شكل الخطأ
{
"error": {
"code": "api_key_missing",
"message": "A valid Bearer API key is required.",
"requestId": "req_..."
}
}احتفظ بـ requestId في سجلاتك عندما تطلب من دعم Rivya التحقيق في طلب API فاشل.
رموز الأخطاء المستقرة
| Code | HTTP status | المعنى | الإجراء المقترح |
|---|---|---|---|
public_api_disabled | 503 | استدعاءات Public API معطلة مؤقتا. | أعد المحاولة لاحقا أو استخدم Studio يدويا. |
api_key_missing | 401 | لم يتضمن الطلب مفتاح Bearer API. | أرسل Authorization: Bearer rvya_sk_.... |
api_key_invalid | 401 | لا يمكن التحقق من المفتاح. | تحقق من المفتاح ودوّره إذا لزم الأمر. |
api_key_revoked | 401 | تم إلغاء المفتاح في Settings. | أنشئ مفتاحا جديدا. |
api_key_expired | 401 | لم يعد المفتاح صالحا. | أنشئ مفتاحا جديدا. |
api_scope_denied | 403 | لا يملك المفتاح النطاق المطلوب. | أنشئ مفتاحا بالنطاق المطلوب. |
rate_limited | 429 | طلبات كثيرة جدا في النافذة الحالية. | تراجع وأعد المحاولة لاحقا. |
validation_failed | 400 | الجسم أو النموذج أو الموجه أو المعلمات غير صالحة. | قارن جسم الطلب بمرجع النموذج. |
not_found | 404 | المهمة المطلوبة غير موجودة أو لا يملكها الحساب. | تحقق من معرف المهمة العام وحدود الحساب. |
webhook_url_rejected | 400 | عنوان URL لنقطة webhook غير مسموح. | استخدم عنوان HTTPS عاما من دون بيانات اعتماد أو fragments أو localhost أو عناوين شبكة خاصة. |
chat_model_not_supported | 400 | النموذج المحدد غير متاح لـ Chat API. | اقرأ /api/v1/models واختر نموذج دردشة متاحا. |
chat_session_conflict | 409 | لا يمكن استخدام جلسة الدردشة لهذا الطلب. | استخدم جلسة منشأة عبر API يملكها الحساب نفسه والنموذج نفسه. |
chat_attachment_not_supported | 400 | مرفق الدردشة غير مدعوم. | ارفع صورة عبر Files API ومرر file_id الخاص بها. |
idempotency_conflict | 409 | أعيد استخدام مفتاح idempotency نفسه مع إدخال مختلف. | استخدم مفتاحا جديدا أو أعد إرسال الجسم نفسه تماما. |
insufficient_credits | 402 | لا يملك الحساب رصيدا كافيا. | أضف رصيدا أو اختر طلبا أقل تكلفة. |
internal_error | 500 | تعذر إكمال الطلب. | أعد المحاولة مع idempotency أو تواصل مع الدعم باستخدام requestId. |
حدود المعدل
تطبق Rivya حدود معدل Public API على مستوى التطبيق لكل مفتاح API. يضبط حد الإنتاج الافتراضي بواسطة PUBLIC_API_RATE_LIMIT_PER_MINUTE.
عندما تتلقى rate_limited، استخدم تراجعا أسيا. لا تعد المحاولة في حلقة ضيقة.
إعادة المحاولة المتطابقة
أرسل Idempotency-Key مع كل طلب إنتاج من نوع POST /api/v1/generations وPOST /api/v1/chat/completions.
النمط الموصى به:
أنشئ مفتاحا فريدا لكل طلب توليد منطقي
أعد استخدام المفتاح نفسه فقط عند إعادة محاولة الجسم نفسه
خزّن معرف المهمة العام العائد مع سجل المهمة الخاص بك
بالنسبة إلى Chat API، خزّن
session_idالعائد عندما تريد متابعة المحادثة نفسهالا تعيد استخدام مفتاح واحد لنموذج أو موجه أو معلمات مختلفة
إذا فشلت الشبكة بعد الإرسال، أعد المحاولة بالجسم نفسه وIdempotency-Key نفسه. يمكن لـ Rivya إعادة الاستجابة العامة المخزنة بدلا من إنشاء مهمة مكررة.
قرارات إعادة المحاولة
أعد محاولة هذه الأخطاء مع تراجع:
public_api_disabledrate_limitedinternal_errorأعطال الشبكة المؤقتة
لا تعد محاولة هذه الأخطاء من دون تغيير الإدخال:
api_key_invalidapi_key_revokedapi_scope_deniedvalidation_failedwebhook_url_rejectedchat_model_not_supportedchat_session_conflictchat_attachment_not_supportedidempotency_conflictinsufficient_credits