OpenAI insufficient_quota: معناه وسببه وحله

يصل متنكراً في زي 429، لكنه مشكلة فوترة ترتدي بزّة حد الاستخدام. لا حلقة إعادة محاولة في الدنيا تصلح حساباً فارغاً.

بقلم فريق benchr · · متحقَّق منه مقابل توثيق الأخطاء من OpenAI، 12 يونيو 2026

OpenAIHTTP 429الخطورة: عاليةالحصة والفوترة

لماذا يحدث

يفوتر OpenAI بالرصيد المدفوع مسبقاً وأسقف ميزانية اختيارية. لحظة بلوغ الرصيد القابل للاستخدام صفراً (أو بلوغ سقفك)، تتوقف الـ API عن خدمتك. أربع حالات تنتج كل الحالات تقريباً: نفد رصيد الحساب ببساطة في منتصف الشهر؛ أو سقف ميزانية ضبطته قبل أشهر صار مقيِّداً أخيراً؛ أو انتهت أرصدة التجربة (لها صلاحية)؛ أو مفتاحك يعود لمشروع نفدت حصته بينما لمشروع شقيق مال باقٍ. الأخيرة تلسع الفرق التي تنظّم العمل في مشاريع متعددة وتفترض أن الفوترة مشتركة. ليست كذلك — الحصة تتبع المشروع، والفشل كذلك.

الخطأ الذي سيظهر لك

{
  "error": {
    "message": "You exceeded your current quota, please check your plan and billing details.",
    "type": "insufficient_quota",
    "code": "insufficient_quota"
  }
}

حالة HTTP: 429. تلك الحالة هي الفخ — يرى وسيطُ إعادة المحاولة لديك 429 فيتراجع بأدب، ثم يفشل ثانيةً، إلى الأبد. الجسم، لا الحالة، يخبرك أيّ 429 لديك.

الحارس البرمجي الذي ينقذ ليلتك

افصل الـ 429 على مستوى المعالِج. إخفاقات الحصة تذهب إلى تنبيه؛ وحدود الاستخدام تذهب إلى التراجع:

# Python — route the two 429s differently
from openai import OpenAI, RateLimitError

client = OpenAI()
try:
    r = client.chat.completions.create(model="gpt-5", messages=msgs)
except RateLimitError as e:
    if "insufficient_quota" in str(e):
        alert_oncall("OpenAI billing exhausted — requests halted")
        raise            # retrying is pointless
    sleep_with_backoff() # a real rate limit — this one heals itself

الوقاية

اضبط تنبيه استخدام تحت سقفك، لا عنده. تريد الرسالة قبل أن يشعر الإنتاج بأي شيء. أعطِ كل مشروع ميزانيته الخاصة كي لا تجوّع مهمة دفعية جامحة بقية المشاريع. وإذا ظلت الحصة تتبخر أسرع مما خُطّط، فالفاتورة نفسها هي العلّة: وجّه التدفق الضخم إلى مستوى أرخص بدل أن تطعِم كل شيء لنموذجك الأغلى.

أسئلة شائعة

لماذا يظهر لي insufficient_quota مع مفتاح API جديد تماماً؟

المفاتيح الجديدة لا تأتي بمال. إذا لم يكن للمشروع رصيد مدفوع مسبقاً ولا رصيد تجربة حيّ، يفشل أول طلب بهذه الطريقة بالضبط. موّل الحساب؛ المفتاح لم يكن المشكلة قط.

هل يصلحه التراجع الأسي؟

لا. حدود الاستخدام تُعاد كل دقيقة؛ أما الحصة فتبقى حتى تتغير الفوترة. التراجع ضد insufficient_quota حلقة لا نهائية بخطوات إضافية.

كيف أميّزه عن حد الاستخدام برمجياً؟

حالة HTTP نفسها، جسم مختلف. افحص حقل type/code في الخطأ: insufficient_quota يعني نبّه إنساناً؛ rate_limit_exceeded يعني تراجع وأعد المحاولة.

سجل التغييرات

  • — نُشر. تم التحقق من دلالات الخطأ مقابل دليل أكواد أخطاء OpenAI.

المصادر

  • OpenAI error codes guide — developers.openai.com/api/docs/guides/error-codes (تم التحقق في 12 يونيو 2026)
  • benchr api-errors.json — المُدخَل المهيكل لهذا الخطأ