جدول المحتويات
هل ظهرت لك في Claude Code فجأة رسالة كهذه وطُلب منك تسجيل الدخول؟
Not logged in · Please run /login
Invalid API key · Fix external API key
OAuth token has expired · Please run /login
API Error: 400 ... This organization has been disabled.
هذه أخطاء من نوع «فشل المصادقة (من أنت؟)»، وتظهر عادةً على هيئة 401/403. والمزعج فيها هو مدى حيرتها — «أنا أدفع ومع ذلك أُرفض» أو «كان يعمل بالأمس، والآن يطلب مني فجأةً تسجيل الدخول». لكن معظم الأسباب نمطية، وما إن تعرف ترتيب الفحص حتى يصبح الإصلاح سريعًا.
أهم نقطة في البداية. (1) المشكلة رقم واحد في المصادقة هي أن متغيّر البيئة ANTHROPIC_API_KEY يتجاوز بصمت تسجيل دخول اشتراكك (Pro/Max) — وهو ما يصبح السبب الحقيقي وراء الرسوم غير المتوقعة بنظام الدفع حسب الاستخدام، و«organization disabled»، و«Invalid API key». (2) نقطة الانطلاق دائمًا هي /status لمعرفة «أيّ بيانات اعتماد نشطة الآن». (3) عند الشك، «unset للمفتاح الشارد ← /logout ← /login» لإعادة دخول نظيفة.
لبيانات الاعتماد «ترتيب أولوية»
— الأعلى يفوز، لذا فإن مفتاح API في البيئة يتجاوز اشتراكك
ANTHROPIC_AUTH_TOKEN (للبوابات)
ANTHROPIC_API_KEY ← متغيّر بيئة
هذا يفوز = دفع حسب الاستخدام
apiKeyHelper / 5. CLAUDE_CODE_OAUTH_TOKEN
/login)
ما تريده فعلاً
إذا بقي ANTHROPIC_API_KEY في بيئتك، فإنه يأخذ الأولوية على الاشتراك.
تحقّق أولاً بـ /status ← وإن لم يكن ضروريًا، نفّذ unset ANTHROPIC_API_KEY.
1. ما الذي يخبرك به هذا الخطأ
المصادقة تعني «إثبات من أنت». يُثبت Claude Code «هويتك» إما عبر تسجيل دخول OAuth للاشتراك، أو مفتاح API، أو بيانات اعتماد سحابية. وعندما يفشل ذلك الإثبات، تُرفض بصفة 401 (authentication_error) أو 403 (forbidden). وإليك الرسائل التمثيلية ومعانيها:
| الرسالة | المعنى |
|---|---|
| Not logged in · Please run /login | لا توجد بيانات اعتماد صالحة ← /login |
| Invalid API key · Fix external API key (في الإصدارات الأقدم: «· Please run /login») | رفضت الـ API مفتاحًا من متغيّر بيئة أو من apiKeyHelper |
| This organization has been disabled | مفتاح API قديم من منظمة معطّلة يتجاوز بياناتك |
| OAuth token revoked / has expired · Please run /login | تسجيل خروج من مكان آخر / إبطال من المسؤول / فشل التحديث التلقائي |
| API Error: 403 ... forbidden ... Request not allowed | اشتراك غير نشط، أو غياب دور Console، أو تداخل بروكسي |
العادة الأساسية: قبل لوم نفسك، نفّذ /status لمعرفة «أيّ بيانات اعتماد نشطة الآن». معظم أخطاء المصادقة تنشأ من اختيار بيانات اعتماد غير مقصودة — والمتهم الأول هو «تجاوز مفتاح API» في القسم التالي.
2. الفخ الأكبر — مفتاح API يتجاوز اشتراكك
تنص الوثائق الرسمية على أن Claude Code يختار بيانات اعتماد واحدة وفق «ترتيب الأولوية» (انظر الرسم الرئيسي). والمشكلة أن متغيّر البيئة ANTHROPIC_API_KEY يقع فوق تسجيل دخول اشتراكك (Pro/Max). أي بعبارة أخرى —
الشرح الرسمي (بإعادة صياغة)
«حتى مع وجود اشتراك نشط، إذا كان ANTHROPIC_API_KEY مضبوطًا في بيئتك، فإنه يأخذ الأولوية بمجرد الموافقة عليه. وإذا كان ذلك المفتاح يخص منظمة معطّلة أو منتهية، تفشل المصادقة. نفّذ unset ANTHROPIC_API_KEY للرجوع إلى اشتراكك، وتحقّق بـ /status من أيّهما نشط».
يُنتج هذا التجاوز ثلاثة أعراض «محيّرة». (1) رسوم غير متوقعة بنظام الدفع حسب الاستخدام — فما يُفترض أن يكون اشتراكًا ثابتًا تتم محاسبته بحسب التوكن عبر مفتاح API (وردت تقارير عن فواتير مفاجئة كبيرة). (2) This organization has been disabled — المفتاح المتبقي كان يخص منظمة قديمة معطّلة. (3) Invalid API key — المفتاح منتهٍ أو خاطئ. ولا شيء من هذا «مشكلة في تسجيل دخولك» — بل هي «مشكلة مفتاح شارد يتربّع في بيئتك».
من أين يأتي المفتاح: سطر export ANTHROPIC_API_KEY=... في ~/.zshrc / ~/.bashrc / ~/.profile؛ أو ملف .env يقرأه direnv أو dotenv أو طرفية محرر الأكواد (IDE)؛ أو بقايا من وظيفة/مشروع سابق؛ أو بيئة CI. وعلى نظام Windows، ملف تعريف PowerShell ($PROFILE) أو متغيّرات بيئة المستخدم. اكتشفه بـ /status وenv | grep ANTHROPIC؛ وأصلحه بـ:
# Temporarily unset and launch
unset ANTHROPIC_API_KEY
claude
# Permanent fix: remove the export line from your shell config / .env, then confirm with /status
ملاحظة: في الوضع التفاعلي يُسألك مرة واحدة عمّا إذا كنت تريد استخدام المفتاح، ويُحفظ اختيارك (يمكن تغييره لاحقًا عبر مفتاح التبديل «Use custom API key» في /config). وما لم تكن تقصد عمدًا استخدام مفتاح API، تأكّد بـ /status من أن الاشتراك نشط.
3. أسباب أخرى
تميل مشكلات المصادقة الأخرى غير التجاوز أيضًا إلى أن تكون لها أسباب ثابتة.
عثرات المصادقة بخلاف التجاوز
/logout ← /login.claude doctor.c لنسخ الرابط، أو اضبط BROWSER.
«يُطلب منك تسجيل الدخول في كل مرة» ← اشتبه أولاً في انحراف الساعة أو الـ Keychain.
«رُفضت بـ 403» ← اشتبه في اشتراك غير نشط، أو دور Console، أو بروكسي.
معرفة مكان وجود بيانات الاعتماد تسرّع التعافي أيضًا. macOS: الـ Keychain؛ Linux: ~/.claude/.credentials.json (الصلاحية 0600)؛ Windows: %USERPROFILE%\.claude\.credentials.json. عادةً يدير /login و/logout هذه الملفات، لكن إذا تلف المخزن يمكنك حذف هذا الملف لإعادة مصادقة نظيفة (للمتقدّمين).
4. سير عمل التشخيص
عند التعثّر في المصادقة، انتقل من الأعلى إلى الأسفل. تُحل معظم الحالات بحلول الخطوة 3.
اعزل المشكلة من الأعلى للأسفل
/status لمعرفة أيّ بيانات اعتماد نشطة (اشتراك، أو مفتاح API، أو سحابة).env | grep ANTHROPIC (في Windows: $PROFILE / متغيّرات بيئة المستخدم) لـ العثور على مفتاح شارد.unset ANTHROPIC_API_KEY ← أعد التشغيل. اجعله دائمًا بـ حذف سطر export من إعداد الـ shell / .env./logout ← أغلق Claude Code ← /login لإعادة مصادقة نظيفة.claude doctor (macOS) / تأكّد من دور Console (للمنظمات).
القاعدة: «أولاً /status، ثم اصطد المفتاح الشارد».
تُحل معظم الحالات بمجرد إزالة المفتاح الذي كان يتجاوزك.
5. تمييزه عن الأخطاء المشابهة
«الرفض / التوقّف» قد تكون له أسباب غير متعلّقة بالمصادقة أيضًا. التقسيم وفق رمز HTTP هو الطريقة الموثوقة.
| العرَض | ما هو في الحقيقة | الإصلاح الرئيسي |
|---|---|---|
| 401 / 403 · Invalid API key · Not logged in | هذا المقال = المصادقة (مشكلة بيانات اعتماد) | /status ← أزل المفتاح الشارد ← /login |
| usage limit reached | حصة الخطة استُنفدت (المصادقة سليمة) | انتظر إعادة التعيين؛ الحلول |
| 429 Request rejected | حد المعدّل (تجاوز بمفتاح من فئة منخفضة قد يسبّب 429) | خفّف الوتيرة؛ تحقّق أيضًا بـ /status من مفتاح شارد |
| 529 / 500 | من جانب الخادم حمل زائد / خطأ داخلي | انتظر وأعد المحاولة؛ الحلول |
| Credit balance is too low | رصيد مدفوع مسبقًا في Console استُنفد (ادفع أو بدّل إلى اشتراك) | أضف رصيدًا، أو /login إلى اشتراك |
وسيلة للتذكّر: 401/403 هي مشكلة «من أنت؟» = المصادقة. usage limit وCredit balance مشكلتا «كمية / رصيد». 429 هي المعدّل، و529/500 من جانب الخادم. ولاحظ أن مفتاح API الشارد لا يسبّب «فشل المصادقة» فحسب، بل أيضًا «رسومًا غير متوقعة» و«429 على فئة منخفضة» — ولهذا فإن الجواب عند الحيرة هو دائمًا /status أولاً. ولأخطاء شائعة أخرى، انظر دليل الأخطاء.
6. قائمة الوقاية
قائمة تحقّق لتجنّب التعثّر في المصادقة مرارًا.
(1) إذا كنت تستخدم الاشتراك، لا تترك ANTHROPIC_API_KEY في إعداد الـ shell / .env (انتبه لبقايا الوظائف/المشاريع القديمة). (2) اجعل من عادتك تنفيذ /status لـ تأكيد بيانات الاعتماد النشطة قبل العمل المهم. (3) لـ CI، استخدم CLAUDE_CODE_OAUTH_TOKEN الخاص بـ claude setup-token (أو مفتاح API صريح) بدلاً من تسجيل الدخول التفاعلي. (4) إن طُلب منك تسجيل الدخول في كل مرة، افحص ساعة النظام والـ Keychain في macOS. (5) لحسابات المنظمات، تأكّد من دور Console وحالة الخطة. (6) في WSL/SSH، اعرف طريقة لصق الكود.
الخلاصة
إن أخطاء المصادقة / تسجيل الدخول في Claude Code (Not logged in / Invalid API key / organization disabled / OAuth token expired، إلخ) هي في معظمها 401/403 = مشكلات بيانات اعتماد. والسبب الحقيقي الأكثر شيوعًا هو «متغيّر البيئة ANTHROPIC_API_KEY الذي يتجاوز بصمت تسجيل دخول اشتراكك» — وهو ما يُنتج رسومًا غير متوقعة بالدفع حسب الاستخدام، وorganization disabled، وInvalid API key. لذا نقطة الانطلاق دائمًا هي /status لمعرفة «أيّ بيانات اعتماد نشطة».
شخّص بـ (1) /status -> (2) env | grep ANTHROPIC لاصطياد مفتاح شارد -> (3) unset + الحذف من إعداد الـ shell -> (4) /logout -> /login -> (5) الساعة / الـ Keychain / دور Console. تُحل معظم الحالات بمجرد إزالة المفتاح الذي كان يتجاوزك. قسّم وفق 401/403 = مصادقة، usage limit / Credit = كمية ورصيد، 429 = معدّل، 529/500 = خادم لتجنّب الإصلاح الخاطئ. ذات صلة: حد الاستخدام، أخطاء 529/500، دليل أخطاء Claude Code.
الأسئلة الشائعة
Q. أنا أدفع، ومع ذلك تظهر لي «Invalid API key» أو «organization has been disabled». لماذا؟
A. على الأرجح تمامًا، أن متغيّر البيئة ANTHROPIC_API_KEY يتجاوز تسجيل دخول اشتراكك. وإذا كان ذلك المفتاح يخص منظمة منتهية أو معطّلة، فستُرفض حتى مع اشتراك نشط. اعثر عليه بـ env | grep ANTHROPIC، نفّذ unset ANTHROPIC_API_KEY، ثم /login وتأكّد بـ /status. واحذف أيضًا سطر export من إعداد الـ shell (.zshrc إلخ) أو .env.
Q. أنا على اشتراك ثابت لكن حُوسبت بحسب التوكن.
A. هذا أيضًا عادةً هو تجاوز ANTHROPIC_API_KEY. عندما يأخذ مفتاح API الأولوية، يتدفّق الاستخدام إلى محاسبة API بحسب التوكن بدلاً من اشتراكك الثابت. تأكّد بـ /status من أن «الاشتراك نشط»؛ وإن كان مفتاح API هو المختار، أزله بـ unset + تنظيف الإعداد. أبقِه فقط إن كنت تقصد استخدام مفتاح API.
Q. يُطلب مني تسجيل الدخول في كل مرة أبدأ فيها.
A. الأسباب الشائعة هي (1) انحراف ساعة النظام (يعتمد التحقق من التوكن على دقة الوقت) و(2) قفل سلسلة مفاتيح macOS / عدم تطابق كلمة المرور الذي يمنع حفظ بيانات الاعتماد. اضبط الساعة على المزامنة التلقائية، وعلى macOS افحص الـ Keychain بـ claude doctor. وإن استمرت، أعد الدخول بنظافة بـ /logout ← /login.
Q. ماذا يخبرني /status؟
A. يُظهر أيّ طريقة مصادقة / بيانات اعتماد نشطة حاليًا (OAuth الاشتراك، أو ANTHROPIC_API_KEY، أو بيانات اعتماد سحابية). وبما أن معظم متاعب المصادقة هي «اختيار بيانات اعتماد غير مقصودة»، فإن /status أولاً هو القاعدة. ويختلف العرض الدقيق حسب الإصدار، لذا تأكّد من السلوك الحالي في الوثائق الرسمية.
Q. يفشل تسجيل الدخول عبر WSL أو SSH لأن المتصفح لا يفتح.
A. في الإعدادات البعيدة، لا تستطيع إعادة توجيه المتصفح العودة إلى رد النداء المحلي. تحايل على ذلك بـ لصق كود تسجيل الدخول الذي يعرضه Claude Code، أو بالضغط على c لنسخ الرابط وفتحه في متصفحك المحلي، أو بضبط متغيّر البيئة BROWSER على WSL2. ومعرفة طريقة لصق الكود تجعل ذلك موثوقًا.