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

فشل الطلب في المصادقة قبل أن يبدأ أي عمل على النموذج. افحص مصدر المفتاح وترويسة الطلب قبل مراجعة بقية البيانات.

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

OpenAIHTTP 401الخطورة: عاليةالمصادقة

أين يحدث الخلل عادةً؟

غالباً يكون المفتاح صحيحاً في المصدر لكنه يصل إلى التطبيق بصورة مختلفة: نسخة ناقصة، أو علامات اقتباس دخلت في قيمة .env، أو سطر جديد في سرّ CI، أو مفتاح بيئة التجهيز مستخدم في الإنتاج.

العائلة الأخرى إدارية. المفتاح أُلغي أو دُوِّر، أو يعود لمشروع غير الذي تستدعيه، أو أن IP خادمك ليس على القائمة المسموح بها التي تفرضها مؤسستك. كل واحدة من هذه تُرجع 401 نفسه — ولهذا تُشخّص بالطبقة لا بالتخمين.

الاستجابة

HTTP/1.1 401 Unauthorized

{
  "error": {
    "message": "Incorrect API key provided: sk-abc***. You can find your API key in your dashboard.",
    "type": "invalid_request_error",
    "code": "invalid_api_key"
  }
}

ذلك الجسم تمثيلي، لا نسخة حرفية. الجزء المُقنَّع يردّد ما أرسلته: إن لم يطابق المفتاح الذي قصدت تحميله، فالبيئة هي العلّة. ويجدر بك أن تعرف: 401 قد يعني أيضاً غياب عضوية المؤسسة أو IP خارج القائمة المسموح بها، و403 الذي يقول "Country, region, or territory not supported" هو جغرافيا، لا مصادقة.

تشخيص سريع

# 1. Is the env var what you think it is?
echo "len=${#OPENAI_API_KEY} head=${OPENAI_API_KEY:0:4} tail=${OPENAI_API_KEY: -4}"

# 2. Does the key itself pass auth?
curl -s https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY"

اقرأ الصدى أولاً. طول صفر يعني أن المتغيّر لم يُحمَّل قط. ذيلٌ يُظهر علامة اقتباس أو حرفاً غريباً يعني أن ملف البيئة مشوّه. إن بدا الصدى صحيحاً وأرجع الـ curl قائمة نماذج، فالمفتاح يعمل وتطبيقك يحمّل شيئاً آخر، عادةً عملية قديمة. وإن أرجع الـ curl خطأ 401 على مفتاح سُكَّ قبل دقائق، فكُفّ عن التحديق في النص وافحص نطاق المشروع وعضوية المؤسسة والقائمة المسموح بها.

امنع تكراره

احتفظ بالمفاتيح في مدير أسرار، وأنشئ مفتاحاً مستقلاً لكل بيئة حتى يبقى أثر أي تسريب محدوداً. وشغّل فحص مصادقة بسيطاً عند بدء التطبيق، كي يفشل النشر مبكراً إذا كان المفتاح ملغى أو غير صحيح، بدلاً من أن يظهر الخطأ لأول مستخدم.

أسئلة شائعة

أنشأت مفتاحاً جديداً ولا يزال يُرجع 401. لماذا؟

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

ما الفرق بين 401 و403؟

الخطأ 401 يعني فشل المصادقة: مفتاح سيّئ، أو غياب عضوية المؤسسة، أو IP خارج القائمة المسموح بها. أما 403 مع "Country, region, or territory not supported" فيعني أن OpenAI يرفض موقع الطلب؛ ولا يصلحه مفتاح صحيح.

هل يصح يوماً تثبيت مفتاح API في الكود مباشرةً؟

لا. المفاتيح المثبَّتة في الكود تُلتزَم وتُنسَخ وتُكشَط. أبقِ المفاتيح في متغيّرات بيئة كحد أدنى، وفي مدير أسرار في الإنتاج، وأصدِر مفاتيح منفصلة لكل بيئة كي يبقى أي تسريب محصوراً.

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

  • — نُشر. تم تأكيد رمز الحالة وبادئة الرسالة وفصل 401-مقابل-403 مقابل دليل أكواد أخطاء OpenAI.

المصادر

  • OpenAI error codes guide: developers.openai.com/api/docs/guides/error-codes (تم التحقق في 12 يونيو 2026)
  • benchr api-errors.json: السجل المهيكل الذي بُنيت منه هذه الصفحة