تعني رسالة «Login expired · Please run /login» أن Claude Code حاول تجديد تسجيل الدخول المحفوظ تلقائيًا فرُفض طلبه، فحذف بيانات الاعتماد المخزّنة. في هذه الحالة لا تصل أوامرك إلى API، بل تتوقف على جهازك. يُصلَح الأمر بإعادة تسجيل الدخول عبر /login، أما تكرار المحاولة فلن يغيّر الرسالة.
Login expired · Please run /login
في الوضع غير التفاعلي (claude -p) وفي Agent SDK تظهر الحالة نفسها بالصيغة التالية (ورمز الخطأ المنظَّم هو authentication_failed).
Failed to authenticate: OAuth session expired and could not be refreshed
ابدأ بالنص الحرفي للرسالة
ليست رسالة واحدة فقط هي التي تطلب /login
رُفض تجديد تسجيل الدخول المحفوظ، وحُذفت بيانات الاعتماد
لا توجد في هذه الجلسة بيانات اعتماد صالحة أصلًا
رفضت API طلبًا أُرسل إليها
الحساب نفسه معلَّق، لا تسجيل الدخول
لن تختفي بإعادة تسجيل الدخول
المحتويات
1. ما الذي انتهت صلاحيته بالضبط في Login expired؟
وفقًا لـمرجع الأخطاء الرسمي لـClaude Code، تظهر هذه الرسالة بعد التسلسل التالي. ما انتهت صلاحيته هو تسجيل الدخول إلى claude.ai أو Claude Console (بيانات اعتماد OAuth) الذي حفظته على جهازك عبر /login.
عندما يفشل التجديد، تكون بيانات الاعتماد المخزّنة قد حُذفت بالفعل
① تسجيل الدخول المحفوظ
تسجيل الدخول إلى claude.ai أو Claude Console الذي حفظته عبر /login
② محاولة تجديد تلقائية
يطلب Claude Code التجديد باستخدام رمز التحديث (refresh token) المخزّن
③ الرفض ثم الحذف
ترفض خدمة المصادقة OAuth الطلب، فيحذف Claude Code بيانات الاعتماد المخزّنة
④ التوقف قبل الإرسال
تتوقف كل الأوامر اللاحقة على جهازك وتظهر Login expired. وحده /login ينشئ بيانات اعتماد جديدة
النقطة الحاسمة هي ④. لأن Claude Code حذف بيانات الاعتماد بالفعل، فهو لا يرسل الطلب إلى API. لهذا تظهر الرسالة نفسها مهما أعدت الإرسال، وتقول الوثائق الرسمية ذلك صراحة: إعادة المحاولة دون تسجيل الدخول تُظهر الرسالة ذاتها مع كل طلب. يقف الشرح الرسمي عند حقيقة أن التجديد رُفض، ولا يفصّل أسباب الرفض. لكنه ينص على أنه إذا كان السبب تعليق الحساب نفسه لا قِدَم تسجيل الدخول، فستظهر رسالة مختلفة هي «Your account is on hold».
تظهر هذه الرسالة منذ v2.1.206
بحسب مرجع الأخطاء الرسمي، كان Claude Code قبل v2.1.206 يواصل إرسال الطلبات ببيانات الاعتماد المتبقية في البيئة حتى بعد تعذّر تجديد تسجيل الدخول. والنتيجة أن كل نموذج كان يفشل برسالة «There's an issue with the selected model» أو بخطأ 401، دون أي دعوة إلى تسجيل الدخول. ويذكر بند v2.1.206 في سجل التغييرات الرسمي (CHANGELOG) أيضًا إصلاح مشكلة كان فيها تسجيل الدخول المنتهي يُفشل كل النماذج بخطأ نموذج مضلِّل بدل أن يطلب تشغيل /login (نُشر الإصدار على npm في 9 يوليو 2026 بتوقيت UTC). إن كنت تستخدم إصدارًا أقدم وكل النماذج تعيد خطأ نموذج، فجرّب /login أولًا.
طرق مصادقة لا تظهر معها هذه الرسالة
الجلسات التي تصادق بمفتاح API (ANTHROPIC_API_KEY)، أو برمز طويل الأمد أُنشئ عبر claude setup-token (CLAUDE_CODE_OAUTH_TOKEN)، أو عبر مزوّد سحابي مثل Amazon Bedrock، لا تستخدم تسجيل الدخول المحفوظ، ولذلك لا تظهر فيها هذه الرسالة. وبعبارة أخرى، الجلسة التي ظهرت فيها Login expired كانت تستخدم تسجيل الدخول المحفوظ بوصفه بيانات الاعتماد الفعّالة.
تحذير مسبق قبل 3 أيام
بحسب وثائق المصادقة الرسمية، يظهر التحذير التالي عند بدء التشغيل ابتداءً من v2.1.203 حين يتبقى أقل من 3 أيام على انتهاء تسجيل الدخول المحفوظ (وكان 5 أيام قبل v2.1.217). التحذير للعلم فقط، وتبقى المصادقة صالحة حتى يحين موعد الانتهاء.
Your login expires in 3 days · run /login to renew
يفيد التجديد المبكر أكثر ما يفيد في الجلسات التي تعمل دون إشراف. إذا تجاوزت جلسة خلفية في agent view أو جلسة Remote Control موعد انتهاء تسجيل الدخول، فإنها تتوقف عن التقدم لحظة انقضاء بيانات الاعتماد، ولا تتعافى حتى تسجّل الدخول من جديد.
2. الفرق عن Not logged in وOAuth token expired
كل هذه الرسائل تنتهي بطلب تشغيل /login، لكنها تختلف في ما حدث وفي ما إذا كان الطلب قد وصل إلى API. هذه شروح مرجع الأخطاء الرسمي جنبًا إلى جنب.
| الرسالة | ما الذي حدث | الإرسال إلى API | الحل |
|---|---|---|---|
| Login expired · Please run /login | رُفض تجديد تسجيل الدخول المحفوظ، وحُذفت بيانات الاعتماد | لم يُرسَل (توقف على الجهاز) | /login |
| Not logged in · Please run /login | لا توجد في هذه الجلسة بيانات اعتماد صالحة | ― | /login، أو تحقق من أن متغير البيئة الذي تقصده يُحمَّل فعلًا |
| OAuth token revoked · Please run /login / …401 OAuth token has expired… | رفضت API طلبًا أُرسل إليها (تسجيل الخروج من كل الأجهزة، أو الحذف من قِبل مسؤول، أو فشل التجديد التلقائي أثناء الجلسة) | أُرسل ثم 401 | /login. وإن عادت في الجلسة نفسها: /logout ← /login |
| Please run /login · API Error: 401 Invalid authentication credentials | قُبلت صيغة بيانات الاعتماد، لكن الرفض جاء من جهة الحساب أو المؤسسة | أُرسل ثم 401 | تحقق من بيانات الاعتماد الفعّالة عبر /status قبل التصرف |
| Your account is on hold… | الحساب معلَّق (كانت تظهر بوصفها Login expired قبل v2.1.235) | ― | استخدم الرابط الوارد في الرسالة لمعرفة التفاصيل أو للاعتراض |
| Remote Control disconnected — Claude.ai login expired — … | توقف اتصال Remote Control وحده، وتستمر الجلسة المحلية | ― | /login. وبحسب الرسالة، أتبِعه بـ/remote-control |
للتمييز بينهما تذكّر أن Not logged in تعني «لم تكن هناك بيانات اعتماد أصلًا»، وأن Login expired تعني «كانت موجودة، لكن تعذّر تجديدها فحُذفت». ومع Not logged in قد يكون ANTHROPIC_API_KEY الذي تنوي استخدامه غير محمَّل في الصَّدَفة (shell) التي شغّلت منها البرنامج. شرحنا أسباب Not logged in، وكيف يتقدّم متغير بيئة مفتاح API على تسجيل الدخول بالاشتراك، في مقالنا عن أخطاء المصادقة وتسجيل الدخول في Claude Code (Not logged in / Invalid API key).
أما الفرق عن OAuth token has expired فهو هل وقع الأمر قبل الإرسال إلى API أم بعده. توضح الوثائق الرسمية أنه إذا كان تسجيل الدخول المحفوظ قد حُذف بالفعل بعد تجديد فاشل، فستظهر Login expired بدلًا منها. أما الرسالة ذات الاسم المشابه Anthropic profile login expired فلا تظهر إلا عند استخدام ملف تعريف لبيانات اعتماد Anthropic تختاره عبر ANTHROPIC_PROFILE أو ما شابهه، ولا تظهر في الجلسات التي تستخدم تسجيل الدخول إلى claude.ai.
3. خطوات إعادة تسجيل الدخول عبر /login
الطلب الذي ظهرت معه هذه الرسالة لم يصل إلى API. لكن إن ظهرت في منتصف دورة عمل، فقد تكون تعديلات الملفات أو الأوامر السابقة في تلك الدورة قد نُفِّذت بالفعل، وإرسال الأمر نفسه كما هو قد يؤدي إلى تنفيذها مرتين. قبل إعادة الإرسال، تحقق من المدى الذي بلغه العمل.
تحقق من الحساب الذي انتهى تسجيل دخوله
افتح /status من مربع الإدخال. بحسب الوثائق الرسمية، يعرض صف Login ابتداءً من v2.1.210 العبارة Expired — log in again، إلى جانب المؤسسة والبريد الإلكتروني المحفوظين لتسجيل الدخول المنتهي. لا يظهر هذا الصف إلا حين يكون تسجيل الدخول المحفوظ هو بيانات الاعتماد الفعّالة. إن كنت تتنقل بين عدة حسابات، فدوّن هنا الحساب الذي ستعيد الدخول إليه.
شغّل /login وسجّل الدخول بالحساب نفسه
سيُفتح المتصفح. سجّل الدخول بحساب claude.ai إن كنت مشتركًا، أو بحساب Claude Console إن كنت تدفع مقابل استخدام API. إن لم يُفتح المتصفح، فاضغط c لنسخ الرابط والصقه في متصفح على جهازك. في WSL2 أو عبر SSH أو داخل حاوية، قد يعرض المتصفح رمز دخول بعد تسجيل الدخول؛ الصقه حينها عند موجّه الطرفية Paste code here if prompted. وحين ترى Login successful اضغط Enter للعودة.
إن لم ينجح لصق الرمز، سجّل الدخول من الصَّدَفة
في الطرفيات التي لا يصل فيها اللصق إلى مربع الإدخال، جرّب طريقة لصق أخرى، مثل النقر بالزر الأيمن أو Shift+Insert في Windows Terminal. وإن ظلت لا تعمل، فشغّل claude auth login في الصَّدَفة. يقرأ هذا الأمر الرمز الملصق من الإدخال القياسي، وتذكر الوثائق الرسمية أنه يعمل أيضًا على Windows الأصلي.
تأكد بأمر قصير قبل العودة إلى العمل
لا ترسل أمرك الأصلي الكبير فورًا. أرسل أولًا تحققًا قصيرًا واحدًا لا يتضمن عمليات على الملفات. وحين يعود الرد، راجع ما أُنجز ثم أعد إرسال الأمر الذي احتفظت به.
# في مربع الإدخال في Claude Code
/status
/login
# إن لم يعمل اللصق في مربع الإدخال (شغّله في الصَّدَفة)
claude auth login
عند ظهورها مع claude -p أو في CI
لا يمكن إتمام تسجيل الدخول عبر المتصفح في الوضع غير التفاعلي. الإجراء الرسمي هو أن تشغّل claude مرة واحدة في الوضع التفاعلي في البيئة نفسها، وتُتم /login، ثم تعيد تشغيل أمرك الأصلي. وفي الأتمتة التي لا يمكنها تسجيل الدخول تفاعليًا، استخدم مفتاح API من Console (ANTHROPIC_API_KEY، ويُحتسب بوصفه استخدامًا لـAPI) أو رمزًا طويل الأمد يُنشأ عبر claude setup-token.
claude setup-token
# بعد الموافقة في المتصفح يُعرض الرمز في الطرفية (ولا يُحفظ في أي مكان)
export CLAUDE_CODE_OAUTH_TOKEN=the-token-shown
بحسب وثائق المصادقة الرسمية، يصلح هذا الرمز لمدة سنة واحدة، ويتطلب إحدى خطط Pro أو Max أو Team أو Enterprise. ولا يصلح إلا لطلبات النموذج، فلا يمكن استخدامه مع Remote Control ولا مع موصلات claude.ai. وفي التشغيل مع --bare لا يُقرأ هذا المتغير، فاستخدم هناك مفتاح API أو apiKeyHelper. لاحظ أيضًا أنه حين تنتهي صلاحية هذا الرمز نفسه أو يصبح غير صالح، تظهر رسالة OAuth token revoked / expired، لا Login expired.
عندما يفشل تسجيل الدخول نفسه
حين يكون السبب غير واضح، يقترح دليل استكشاف الأخطاء الرسمي إجراء إعادة ضبط: /logout ← أغلق Claude Code ← شغّله مجددًا بـclaude وسجّل الدخول. يعيد /logout أيضًا ضبط حالة الإعداد الخاصة بالتشغيل الأول، فيأخذك التشغيل التالي عبر تسجيل الدخول والإعداد الأولي من جديد. تُحذف كل بيانات الاعتماد المخزّنة، فستحتاج كذلك إلى إعادة إدخال تسجيلات الدخول لخوادم MCP والقيم السرية للإضافات. وإن ظهرت OAuth error: Invalid code، فالسبب أن رمز الدخول انتهت صلاحيته أو اقتُطع جزء منه عند النسخ؛ لذا أتمّ الخطوات فور فتح المتصفح، وانسخ الرابط كاملًا بـc.
4. التأكد من أن المشكلة انحلّت
لا تعتبر الأمر منتهيًا لمجرد أن الخطأ لم يظهر مرة واحدة. تحقق من هذه الأمور الثلاثة.
ما يعرضه /status
هل اختفت Expired — log in again من صف Login، وهل المؤسسة والبريد الإلكتروني للحساب الذي تقصده؟ وحين يوجد تسجيل دخول ومفتاح API معًا، يُعلَّم الطرف غير المستخدم
رمز الخروج من claude auth status
بحسب مرجع CLI الرسمي، ينتهي بـ0 عند تسجيل الدخول وبـ1 عند عدمه. مفيد للتحقق المسبق في السكربتات
هل يعود رد قصير؟
لا تعرف أن طلبات النموذج تمر فعلًا إلا حين يعود رد. ورسالة التحقق تستهلك من حصة الاستخدام كالمعتاد
# عرض مقروء للبشر
claude auth status --text
# رؤية رمز الخروج (macOS و Linux)
claude auth status; echo $?
# رؤية رمز الخروج (PowerShell)
claude auth status; $LASTEXITCODE
للتحقق من الرد، أرسل مثلًا نصًا كهذا.
هذا فحص للاتصال. لا تقرأ الملفات ولا تكتبها ولا تستدعِ أي أداة،
واكتفِ بالرد بعبارة "تم الرد بنجاح".
5. ما تتحقق منه عندما تتكرر الرسالة
إن ظهرت مرة واحدة فـ/login يكفي. أما إن ظهرت كل بضعة أيام أو كل يوم تقريبًا، فمرّ على البنود التالية من الأعلى. كل بند منها مأخوذ من الوثائق الرسمية أو من سجل التغييرات، ولم يُضَف أي بند على سبيل التخمين. ابدأ بالتحقق من أن إصدارك ليس قديمًا.
claude --version
claude update
الجلسات المتوازية والاستيقاظ من السكون
بحسب الوثائق الرسمية، تتشارك الجلسات المتوازية على الجهاز نفسه تسجيل الدخول المحفوظ، ويجري التجديد عملية واحدة في كل مرة. قبل v2.1.211 كان يمكن لجلستين أن تجدّدا بالرمز نفسه عند الاستيقاظ من السكون، فيُبطَل تسجيل الدخول المحفوظ وتطلب كل الجلسات تسجيل الدخول دفعة واحدة
إصدار أقدم يعمل على الجهاز نفسه
يذكر بند v2.1.277 في سجل التغييرات إصلاح تسجيل الخروج غير المتوقع حين يعمل على الجهاز نفسه إصدار أقدم، مثل CLI المضمَّن في إضافة IDE. ولا يذكر نص الرسالة التي ظهرت حينها. حدّث CLI وإضافة IDE كليهما
سلسلة المفاتيح (Keychain) في macOS
إذا كانت سلسلة المفاتيح مقفلة، أو كانت كلمة مرورها لا تطابق كلمة مرور الحساب، يُرفض الحفظ فيها ويُحفظ تسجيل الدخول نصًا صريحًا في ~/.claude/.credentials.json. أعِدها إلى حالة قابلة للكتابة بالخطوات أدناه. إضافة في 26 سبتمبر 2026: يذكر بند v2.1.281 في سجل التغييرات إصلاح مشكلة كان فيها الحفظ أثناء قفل سلسلة المفاتيح، كما بعد الاستيقاظ من السكون مباشرة، قد يحذف عنصرها
ساعة النظام
ينبّه دليل استكشاف الأخطاء الرسمي إلى أن التحقق من الرموز يعتمد على صحة الوقت، وينصح بالتأكد من دقة الساعة إن طُلب منك تسجيل الدخول كثيرًا. فعّل المزامنة التلقائية للوقت في نظام التشغيل
الحسابات المتعددة وCLAUDE_CONFIG_DIR
عند ضبط CLAUDE_CONFIG_DIR تُخزَّن بيانات الاعتماد في ذلك المجلد، وتنفصل عناصر سلسلة المفاتيح في macOS أيضًا لكل مجلد. إذا شغّلت /login بقيمة تختلف عن الجلسة التي ظهرت فيها الرسالة، فسيذهب تسجيل الدخول إلى مخزن آخر
الرسالة نفسها تستمر بعد إعادة تسجيل الدخول
قبل v2.1.235 كان تعليق الحساب يظهر هو الآخر بوصفه Login expired. إن لم يُزلها /login على إصدار قديم، فحدّث البرنامج ثم انظر إلى الرسالة من جديد
إعادة سلسلة المفاتيح في macOS إلى حالة قابلة للكتابة
هذه هي الخطوات الواردة في دليل استكشاف الأخطاء الرسمي. إن لم يتضمن تقرير claude doctor تحذيرًا يبدأ بـmacOS Keychain is not writable، فسلسلة المفاتيح قابلة للكتابة، فنفّذ الخطوة 4 وحدها.
- شغّل
claude doctorللتحقق من الوصول إلى سلسلة المفاتيح - إن ظهر تحذير، فافتح القفل بالأمر أدناه، ثم شغّل
claude doctorمرة أخرى - إن بقي التحذير بعد فتح القفل، فافتح Keychain Access (الوصول إلى سلسلة المفاتيح)، واختر سلسلة
login، واستخدمEdit > Change Password for Keychain "login"الوارد في الخطوات الرسمية (اسم البند في الواجهة الإنجليزية) لمطابقتها مع كلمة مرور حسابك - حين يختفي التحذير، أعد تسجيل الدخول بـ
/logout←/login. سيُحفظ تسجيل الدخول في سلسلة المفاتيح من جديد
claude doctor
security unlock-keychain ~/Library/Keychains/login.keychain-db
هل يوقف التحول إلى مفتاح API هذه الرسالة؟
نعم، لكن طريقة الفوترة تتغير. وفق ترتيب الأولوية الرسمي، يتقدّم ANTHROPIC_API_KEY بعد الموافقة عليه على تسجيل الدخول عبر /login، ويُستخدم دائمًا في الوضع غير التفاعلي -p متى كان مضبوطًا. ويُحتسب الاستخدام خلال ذلك بوصفه استخدامًا لـAPI في Console، لا ضمن اشتراكك. لا ننصح بضبط مفتاح API لمجرد تجنّب Login expired. وإن كان هدفك التشغيل دون إشراف، فـclaude setup-token، الذي يعمل مع اشتراكك، أنسب لذلك.
6. حالات مُبلَّغ عنها لم يُحسم سببها
في مستودع Claude Code على GitHub بلاغات أخطاء تتضمن هذه الرسالة بنصها. فتحنا البلاغات الستة التالية وقرأناها في 22 سبتمبر 2026. كلها بلاغات أو تخمينات من المستخدمين، ولم نجد في ما قرأناه ردًا علنيًا من Anthropic. تشابه الأعراض لا يعني بالضرورة تشابه السبب، فلا تتّبعها بوصفها إجراءات، بل استخدمها لتقدير ما إذا كان وضعك مشابهًا.
- #94464 (macOS، CLI 2.1.270): في بيئة يتشارك فيها Claude Code المدمج في تطبيق Claude لسطح المكتب وCLI في الطرفية المجلد
~/.claudeنفسه، تظهر Login expired في الطرفية كل يوم تقريبًا. يرجّح صاحب البلاغ أن الرموز التي يجدّدها الإصدار المدمج تُكتب في الملف وحده، فيبقى رمز قديم في سلسلة المفاتيح. وفي تعليق لاحق بلاغ عن العرض نفسه على 2.1.273 - #88583 (macOS، 2.1.229 المضمَّن في تطبيق سطح المكتب): بلاغ بأن الجلسات المتوازية تتنازع على التجديد فتُفرَّغ بيانات الاعتماد في سلسلة المفاتيح. وفي تعليق لاحق مثال على ظهور
Failed to authenticate: OAuth session expired and could not be refreshedعلى Windows بالإصدار 2.1.251 - #88947 (Linux، 2.1.228–2.1.240): في بيئة تتشارك فيها ما بين 10 و24 جلسة تفاعلية مجلد
~/.claudeواحدًا، تصاب كل الجلسات بـLogin expired على فترات تقل عن أسبوع - #95822 (macOS): يشير إلى أن الأوامر القصيرة العمر مثل
claude auth statusتبدأ تجديدًا عند التشغيل ثم تنتهي دون حفظ النتيجة، فيبقى رمز تحديث مستعمَل. كانت أداة مراقبة تشغّله كل بضع دقائق (لوحظ على 2.1.259). الأسلم تجنّب تشغيلclaude auth statusمن القسم 4 مرارًا على فترات قصيرة - #83834 (Windows، 2.1.221): تظهر Login expired حتى بعد تسجيل الدخول مباشرة، وكانت قيمة تاريخ الانتهاء في الملف المحفوظ 0. ويذكر تعليق لاحق الأمر نفسه على Linux بالإصدار 2.1.241
- #80605 (macOS، 2.1.218): استمرت الرسالة حتى بعد حذف بيانات الاعتماد وعنصر سلسلة المفاتيح وإعادة التثبيت، ولم تظهر شاشة تسجيل الدخول مع
/login. تمكّن صاحب البلاغ من تسجيل الدخول في اليوم التالي، لكنه يكتب أنه لا يعرف ما الذي أصلح المشكلة (مغلق)
القاسم المشترك بين البلاغات الأربعة الأولى هو وجود عدة عمليات على جهاز واحد تستخدم تسجيل الدخول المحفوظ نفسه. إن تكررت الرسالة، فدوّن عدد نسخ Claude Code العاملة في الوقت نفسه (CLI في الطرفية، إضافة IDE، تطبيق سطح المكتب، الجلسات الخلفية)؛ فذلك يساعدك على وصف الوضع بدقة عند الإبلاغ.
7. ما تسجّله إن لم تنحلّ المشكلة
يسرد دليل استكشاف الأخطاء الرسمي القنوات الأربع التالية حين لا تنحل المشكلة.
- شغّل
claude doctorلإنشاء تقرير تشخيص تلقائي - إن استطعت فتح جلسة، فأبلغ عبر
/feedbackفي مربع الإدخال - ابحث في بلاغات GitHub (Issues) عن المشكلات المعروفة، وإن لم تجد شيئًا فافتح بلاغًا جديدًا مع نظام التشغيل وطريقة التثبيت والنص الكامل للخطأ
- للمشكلات من جهة الحساب، مثل حلقة تسجيل الدخول، سجّل الدخول إلى claude.ai (ولمستخدمي Console: platform.claude.com)، وانقر على الأحرف الأولى من اسمك في الركن السفلي الأيسر، واختر «Get help» للتواصل مع الدعم
قالب ملاحظات البلاغ
- البيئة
- ناتج
claude --version/ نظام التشغيل / طريقة التثبيت (أصلي، npm، مدمج في تطبيق سطح المكتب، إلخ) - الرسالة
- النص الكامل للخطأ / وقت حدوثه والمنطقة الزمنية / صف Login من
/status(مع إخفاء البريد الإلكتروني) - الوضع
- عدد نسخ Claude Code العاملة في الوقت نفسه وأنواعها / هل حدث ذلك بعد الاستيقاظ من السكون أو بعد تحديث مباشرة
- ما جرّبته
- ما الذي تغيّر قبل
/loginو/logoutوفحص سلسلة المفاتيح وما إلى ذلك وبعدها
8. الخلاصة
«Login expired · Please run /login» هي الرسالة التي تظهر بعد أن رُفض تجديد تسجيل الدخول المحفوظ وحذف Claude Code بيانات الاعتماد. الطلبات تتوقف على جهازك، فلا تُصلحها إعادة المحاولة؛ وإن أردت مواصلة استخدام تسجيل الدخول المحفوظ، فلا سبيل إلا إعادة تسجيل الدخول عبر /login. تحقق من الحساب المنتهي عبر /status، وسجّل الدخول بالحساب نفسه، وتأكد برد قصير، وبذلك تنتهي.
إن تكررت، فتحقق بهذا الترتيب: تحديث الإصدار، ثم الإصدارات الأقدم أو إضافات IDE العاملة على الجهاز نفسه، ثم سلسلة المفاتيح في macOS، ثم الساعة، ثم CLAUDE_CONFIG_DIR. أما Not logged in (لا بيانات اعتماد أصلًا) وOAuth token has expired (رفضتها API) فحلولهما مختلفة، لذا قارن نص الرسالة أولًا. وللأخطاء الأخرى، راجع ملخصنا لأخطاء Claude Code الشائعة وحلولها.
الأسئلة الشائعة
س. ماذا تعني «Login expired · Please run /login»؟
ج. حاول Claude Code تجديد تسجيل الدخول المحفوظ تلقائيًا فرُفض طلبه، فحذف بيانات الاعتماد المخزّنة. ومن بعدها لا تُرسَل الطلبات إلى API، بل تتوقف على جهازك. يُصلَح الأمر بإعادة تسجيل الدخول عبر /login.
س. هل تُصلحها إعادة المحاولة بضع مرات؟
ج. لا. بيانات الاعتماد حُذفت بالفعل، وتوضح الوثائق الرسمية أن إعادة المحاولة دون تسجيل الدخول تُظهر الرسالة ذاتها مع كل طلب. وحده /login ينشئ بيانات اعتماد جديدة.
س. هل يعني هذا أن اشتراكي انتهى؟
ج. لا يمكن معرفة ذلك من هذه الرسالة وحدها. الشرح الرسمي هو أن تجديد تسجيل الدخول المحفوظ رُفض. وإذا كان الحساب نفسه معلَّقًا، فستظهر رسالة مختلفة هي «Your account is on hold». تحقق من حالة خطتك عبر /status أو من إعدادات claude.ai بعد إعادة تسجيل الدخول.
س. ما الفرق بينها وبين Not logged in؟
ج. Not logged in تعني أن هذه الجلسة لم تكن لديها بيانات اعتماد صالحة من الأساس. أما Login expired فتعني أنه كان هناك تسجيل دخول محفوظ، لكن تعذّر تجديده فحُذف. الحل في الحالتين هو /login، لكن مع Not logged in تحقق أيضًا من أن متغير البيئة الذي تنوي استخدامه يُحمَّل فعلًا.
المصادر الأولية
- Claude Code — Error reference (الوثائق الرسمية): تعريفات رسائل Login expired وNot logged in وOAuth token revoked or expired وYour account is on hold ورسائل Remote Control، وتغييرات v2.1.206 وv2.1.235
- Claude Code — Authentication (الوثائق الرسمية): مكان تخزين بيانات الاعتماد، والتحذير قبل الانتهاء بـ3 أيام، وصف Login في
/status، وأولوية المصادقة، وclaude setup-token - Claude Code — Troubleshoot installation and login (الوثائق الرسمية): إعادة ضبط تسجيل الدخول، ولصق الرمز في WSL2 وSSH، والتجديد عبر الجلسات المتوازية، وخطوات استعادة سلسلة المفاتيح في macOS، وقنوات الدعم
- Claude Code — CLI reference (الوثائق الرسمية):
claude auth loginورموز الخروج منclaude auth status - anthropics/claude-code — CHANGELOG (رسمي): v2.1.203 (التحذير قبل الانتهاء)، وv2.1.206 (من خطأ نموذج إلى الدعوة لتشغيل /login)، وv2.1.211 (تسجيل الخروج الجماعي عند الاستيقاظ من السكون)، وv2.1.217 (نقل التحذير إلى ما قبل 3 أيام)، وv2.1.277 (تسجيل الخروج بسبب إصدار أقدم على الجهاز نفسه)، وv2.1.281 (الحفظ في سلسلة مفاتيح مقفلة)
- بلاغات GitHub: #94464، #88583، #88947، #95822، #83834، #80605 (كلها بلاغات من المستخدمين، جرى التحقق منها في 22 سبتمبر 2026)