المرجع
الأخطاء
تأتي الأخطاء بشكل OpenAI، مع code ثابت يمكنك المطابقة عليه، وmessage مكتوبة للناس. الاستدعاء المرفوض أو الفاشل لا يكلّف شيئًا.
تم التحقق في 26 أكتوبر 2026
الشكل
{
"error": {
"type": "rate_limit_error",
"code": "daily_cap",
"message": "This call needs up to $0.02 and the key has $0.01 left of its $2.00 daily cap, which resets at 00:00 UTC. …"
}
}طابِق على code لا على message: الرسائل قد تُعاد صياغتها، أما الرموز فتبقى. يتبع type تسمية OpenAI، فتطلق حزم SDK الاستثناء الذي تتوقعه.
كل الرموز
| الحالة | الرمز | متى | الحل |
|---|---|---|---|
| 401 | missing_key | لم يُرسل أي مفتاح. | أرسله بصيغة Authorization: Bearer sk-nokeep-…. أنشئ مفتاحًا من لوحة التحكم، أو جرّب sk-nokeep-test أولًا. |
| 401 | invalid_key | المفتاح خطأ، أو أُلغي. | انسخ المفتاح من جديد من المكان الذي حفظته فيه؛ لوحة التحكم تعرض آخر أربعة أحرف منه فقط. أنشئ مفتاحًا جديدًا إن ضاع. |
| 403 | account_frozen | الميزات المدفوعة موقوفة على الحساب الذي يتبعه المفتاح. | راسلنا من صفحة التواصل. |
| 429 | rate_limited | أرسل المفتاح أكثر من 120 طلبًا في دقيقة (20 لمفتاح الاختبار، لكل عنوان). | انتظر عدد الثواني في Retry-After، ثم أعد المحاولة. |
| 429 | daily_cap | قد يتجاوز الطلب الحد اليومي للمفتاح. | ارفع الحد من لوحة التحكم، أو خفّض max_tokens، أو انتظر حتى 00:00 UTC (Retry-After يخبرك كم). |
| 402 | insufficient_credits | الأرصدة المشتراة في الحساب لا تكفي لهذا الطلب. | اشحن من $5 في لوحة التحكم، أو خفّض max_tokens. أرصدة الخطة تبقى في التطبيق. |
| 400 | invalid_json | جسم الطلب ليس كائن JSON. | أرسل Content-Type: application/json وكائن JSON. |
| 413 | too_large | الطلب أكبر من 12 ميغابايت. | أرسل الصور روابطَ بدل data URL، أو أرسل عددًا أقل في كل مرة. |
| 404 | model_not_found | معرّف النموذج ليس من نماذجنا. | GET /v1/models يعرض المعرّفات. تحقّق من خطأ إملائي أو -uncensored ناقصة. |
| 400 | invalid_messages | messages مفقودة أو فارغة، أو طويلة جدًا، أو فيها دور غير معروف، أو رسالة tool بلا tool_call_id. | أرسل من 1 إلى 2,000 رسالة، لكل منها دور system أو developer أو user أو assistant أو tool. |
| 400 | unsupported_n | n أكبر من 1. | أرسل طلبًا واحدًا لكل رد تريده. |
| 400 | invalid_reasoning_effort | النموذج لا يقبل قيمة reasoning_effort هذه. | يقبل DeepSeek القيم none أو low أو high أو max. ويقبل GLM القيمة low أو high. |
| 400 | unsupported_tool_choice | تلقّى GLM دالة مسمّاة أو "required" في tool_choice. | أرسل إلى GLM القيمة auto أو none؛ فهو يختار أدواته بنفسه. ويقبل DeepSeek كل الصيغ. |
| 400 | unsupported_input | جزء من المحتوى من نوع لا يستطيع النموذج قراءته. | أرسل الصور إلى DeepSeek؛ GLM يقرأ النص فقط. |
| 400 | too_many_images | أكثر من عشر صور في طلب واحد. | أرسل عشرًا على الأكثر. |
| 422 | hard_limit | يتجاوز الطلب أحد الحدود الصارمة في الشروط. | لم يُحتسب أي شيء. احذف الرسالة من السجل الذي ترسله مجددًا، وإلا سيتوقف الطلب التالي أيضًا. |
| 400 | rejected | لم يستطع النموذج قبول الطلب كما أُرسل. | طابق المعاملات مع قائمة النموذج في النماذج. لم يُحتسب أي شيء. |
| 503 | busy | النموذج مشغول. | أعد المحاولة بعد عدد الثواني في Retry-After. لم يُحتسب أي شيء. |
| 503 | model_unavailable | النموذج متوقف من جهتنا. | استخدم النموذج الآخر الآن؛ صفحة الحالة تُظهر متى يعود. |
| 502 | upstream_error | فشل النموذج قبل أن يكتب أي كلمة. | أعد المحاولة بعد قليل. لم يُحتسب أي شيء. |
| 404 | not_found | هذا المسار غير موجود. | تقدّم الواجهة GET /v1/models وGET /v1/models/{id} وGET /v1/status وPOST /v1/chat/completions. |
| 404 | api_closed | الواجهة متوقفة. | حاول لاحقًا. |
| أثناء البث | الرمز | متى | الحل |
|---|---|---|---|
| — | stream_cut | توقف النموذج قبل أن ينتهي، في منتصف البث. | يُحتسب ما كتبه فقط، لا أكثر. أعد المحاولة لتحصل على الباقي، أو أكمل مما وصل. |
أيّها تُعاد محاولته
- أعد المحاولة مع
429 rate_limitedو503 busyو502 upstream_error، بعد المدة (بالثواني) التي يحددهاRetry-Afterإن وُجد. - لا تعيد المحاولة مع أخطاء
400و401و402و404و422: الطلب نفسه يحصل على الرد نفسه. - الخطأ
429 daily_capينتظر حتى 00:00 UTC. ارفع الحد بدلًا من ذلك.