“Login expired · Please run /login” यह बताता है कि Claude Code ने आपका सहेजा गया लॉगिन अपने-आप नवीनीकृत (refresh) करने की कोशिश की, अनुरोध ठुकरा दिया गया, और उसने सहेजे गए क्रेडेंशियल मिटा दिए। इस स्थिति में आपके निर्देश 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” माँगने वाला संदेश सिर्फ़ एक नहीं है

Login expired · Please run /login
सहेजे लॉगिन का नवीनीकरण ठुकराया गया, क्रेडेंशियल मिटाए जा चुके हैं
→ /login से दोबारा साइन इन करें
निर्देश API तक नहीं पहुँचा
Not logged in · Please run /login
इस सेशन में इस्तेमाल लायक क्रेडेंशियल है ही नहीं
→ अंतर समझें
एनवायरनमेंट वेरिएबल लोड न होने की संभावना भी देखें
OAuth token revoked / OAuth token has expired
भेजे गए अनुरोध को API ने ठुकराया
→ /login, फिर भी लौटे तो /logout से
फ़र्क यह है कि अस्वीकृति भेजने के बाद हुई
Your account is on hold…
लॉगिन नहीं, खाता ही रोका गया है
→ संदेश के लिंक से विवरण देखें
दोबारा साइन इन करने से नहीं हटता
आधिकारिक त्रुटि संदर्भ के वर्गीकरण के आधार पर, संदेश के शब्दों से जाँच की दिशा चुनने के लिए बनाया गया चित्र।

1. Login expired में असल में क्या समाप्त हुआ

Claude Code के आधिकारिक त्रुटि संदर्भ के अनुसार, यह संदेश आने तक का क्रम नीचे जैसा है। जिसकी अवधि खत्म हुई, वह /login से आपकी मशीन पर सहेजा गया claude.ai या Claude Console का लॉगिन (OAuth क्रेडेंशियल) है।

नवीनीकरण विफल होते ही सहेजे गए क्रेडेंशियल मिट चुके होते हैं

① सहेजा गया लॉगिन

/login से सहेजा गया claude.ai या Claude Console का लॉगिन

② अपने-आप नवीनीकरण की कोशिश

Claude Code सहेजे गए रिफ़्रेश टोकन से नवीनीकरण का अनुरोध करता है

③ अस्वीकृति, फिर मिटाना

OAuth प्रमाणीकरण सेवा अनुरोध ठुकराती है और Claude Code सहेजे गए क्रेडेंशियल मिटा देता है

④ भेजने से पहले ही रुकना

इसके बाद के निर्देश मशीन पर ही रुकते हैं और Login expired दिखता है; नए क्रेडेंशियल सिर्फ़ /login बना सकता है

स्रोत: Claude Code के आधिकारिक त्रुटि संदर्भ में “Login expired” के विवरण को चित्र में बदला गया है।

मुख्य बात ④ है। Claude Code क्रेडेंशियल पहले ही मिटा चुका होता है, इसलिए वह अनुरोध API को भेजता ही नहीं। यही वजह है कि कितनी भी बार दोबारा भेजें, वही संदेश आता है; आधिकारिक दस्तावेज़ भी कहते हैं कि साइन इन किए बिना दोबारा कोशिश करने पर हर बार यही संदेश आएगा। आधिकारिक विवरण सिर्फ़ इतना बताता है कि “नवीनीकरण ठुकराया गया”; ठुकराए जाने के कारणों का ब्योरा नहीं देता। हाँ, यह साफ़ लिखा है कि अगर वजह पुराना लॉगिन नहीं बल्कि खाते का निलंबन हो, तो अलग संदेश “Your account is on hold” दिखता है।

v2.1.206 से यह संदेश दिखने लगा

आधिकारिक त्रुटि संदर्भ के अनुसार, v2.1.206 से पहले का Claude Code लॉगिन नवीनीकृत न हो पाने पर भी, एनवायरनमेंट में बचे क्रेडेंशियल से अनुरोध भेजता रहता था। नतीजा यह होता था कि कोई भी मॉडल चुनें, “There's an issue with the selected model” या 401 त्रुटि आती थी और साइन इन करने को कहने वाला संदेश नहीं दिखता था। आधिकारिक CHANGELOG की v2.1.206 प्रविष्टि में भी लिखा है कि समाप्त लॉगिन, /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 दिन से कम बचे हों तो शुरू होते समय नीचे की चेतावनी दिखती है (v2.1.217 से पहले यह 5 दिन पहले दिखती थी)। यह सिर्फ़ सूचना है; अवधि खत्म होने तक प्रमाणीकरण काम करता रहता है।

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…खाता रोका गया है (v2.1.235 से पहले यह Login expired के रूप में दिखता था)―संदेश के लिंक से विवरण देखें या आपत्ति दर्ज करें
Remote Control disconnected — Claude.ai login expired — …सिर्फ़ Remote Control का कनेक्शन रुका; मशीन पर सेशन चलता रहता है―/login; संदेश के अनुसार उसके बाद /remote-control

याद रखने का आसान तरीका: Not logged in का मतलब “क्रेडेंशियल शुरू से थे ही नहीं”, और Login expired का मतलब “थे, पर नवीनीकृत न हो पाने से मिटा दिए गए”। Not logged in में ऐसा भी हो सकता है कि जिस ANTHROPIC_API_KEY को आप इस्तेमाल करना चाहते थे, वह उस शेल में लोड ही न हुई हो जिससे आपने Claude Code शुरू किया। Not logged in के कारण, और API कुंजी का एनवायरनमेंट वेरिएबल सब्सक्रिप्शन लॉगिन पर कैसे प्राथमिकता पाता है, यह Claude Code की प्रमाणीकरण और लॉगिन त्रुटियों (Not logged in / Invalid API key) वाले लेख में समझाया गया है।

OAuth token has expired से अंतर यह है कि अनुरोध API को भेजा जा चुका था या नहीं। आधिकारिक दस्तावेज़ बताते हैं कि अगर विफल नवीनीकरण के बाद सहेजा गया लॉगिन पहले ही मिटाया जा चुका हो, तो उसकी जगह Login expired दिखता है। मिलते-जुलते नाम वाला Anthropic profile login expired सिर्फ़ तब दिखता है जब आप ANTHROPIC_PROFILE आदि से चुनी गई Anthropic क्रेडेंशियल प्रोफ़ाइल इस्तेमाल कर रहे हों; claude.ai लॉगिन वाले सेशन में यह नहीं आता।

3. /login से दोबारा साइन इन करने के कदम

जिस अनुरोध पर यह संदेश आया, वह खुद API तक नहीं पहुँचा। लेकिन अगर यह किसी टर्न के बीच में आया हो, तो उससे पहले की फ़ाइल-संपादन या कमांड पूरी हो चुकी हो सकती हैं, और वही निर्देश ज्यों का त्यों भेजने पर काम दोहरा हो सकता है। दोबारा भेजने से पहले देख लें कि काम कहाँ तक पहुँचा था।

01

देखें कि किस खाते का लॉगिन समाप्त हुआ

इनपुट बॉक्स में /status खोलें। आधिकारिक दस्तावेज़ के अनुसार, v2.1.210 से Login पंक्ति में Expired — log in again दिखता है, साथ में समाप्त लॉगिन में सहेजा गया संगठन और ईमेल भी। यह पंक्ति सिर्फ़ तब दिखती है जब सहेजा गया लॉगिन सक्रिय क्रेडेंशियल हो। अगर आप कई खाते इस्तेमाल करते हैं, तो यहीं नोट कर लें कि किस खाते से दोबारा साइन इन करना है।

02

/login चलाएँ और उसी खाते से साइन इन करें

ब्राउज़र खुलेगा। सब्सक्रिप्शन हो तो claude.ai खाते से, API बिलिंग हो तो Claude Console खाते से साइन इन करें। ब्राउज़र न खुले तो c दबाकर URL कॉपी करें और अपने ब्राउज़र में चिपकाएँ। WSL2, SSH या कंटेनर में, साइन इन के बाद ब्राउज़र एक लॉगिन कोड दिखा सकता है; तब उसे टर्मिनल के Paste code here if prompted पर चिपकाएँ। Login successful दिखे तो Enter दबाकर लौटें।

03

कोड चिपकाना काम न करे तो शेल से साइन इन करें

जिन टर्मिनलों में इनपुट बॉक्स में चिपकाया गया कोड नहीं पहुँचता, वहाँ Windows Terminal में राइट-क्लिक या Shift+Insert जैसे दूसरे तरीके आज़माएँ। फिर भी न हो तो शेल में claude auth login चलाएँ। यह कमांड चिपकाया गया कोड स्टैंडर्ड इनपुट से पढ़ती है, इसलिए आधिकारिक दस्तावेज़ के अनुसार यह नेटिव Windows पर भी काम करती है।

04

छोटे निर्देश से जवाब जाँचें, फिर काम पर लौटें

मूल बड़ा निर्देश तुरंत न भेजें; पहले फ़ाइलों को न छूने वाली एक छोटी जाँच भेजें। जवाब आ जाए, तो प्रगति देखकर नोट किया हुआ निर्देश दोबारा भेजें।

# Claude Code के इनपुट बॉक्स में
/status
/login

# जब इनपुट बॉक्स में चिपकाना काम न करे (शेल में चलाएँ)
claude auth login

claude -p या CI में दिखे तो

नॉन-इंटरैक्टिव मोड में ब्राउज़र से साइन इन नहीं हो सकता। आधिकारिक तरीका है: उसी एनवायरनमेंट में एक बार claude को इंटरैक्टिव मोड में चलाएँ, /login पूरा करें, फिर मूल कमांड दोबारा चलाएँ। जिन ऑटोमेशन में इंटरैक्टिव साइन इन संभव नहीं, वहाँ Console की API कुंजी (ANTHROPIC_API_KEY, API उपयोग शुल्क के रूप में बिलिंग) या claude setup-token से बनाया गया लंबी अवधि का टोकन इस्तेमाल करें।

claude setup-token
# ब्राउज़र में मंज़ूरी देने पर टर्मिनल में टोकन दिखता है (कहीं सहेजा नहीं जाता)
export CLAUDE_CODE_OAUTH_TOKEN=दिखाया-गया-टोकन

आधिकारिक प्रमाणीकरण दस्तावेज़ के अनुसार, यह टोकन 1 साल तक मान्य रहता है और इसके लिए Pro, Max, Team या Enterprise में से कोई प्लान चाहिए। इससे सिर्फ़ मॉडल को अनुरोध भेजे जा सकते हैं; Remote Control या claude.ai कनेक्टर के लिए यह काम नहीं करता। --bare के साथ चलाने पर यह वेरिएबल पढ़ा नहीं जाता, इसलिए API कुंजी या apiKeyHelper इस्तेमाल करें। ध्यान दें, अगर यही टोकन समाप्त या अमान्य हो जाए तो Login expired नहीं, बल्कि OAuth token revoked / expired वाला संदेश आता है।

जब साइन इन ही विफल हो

आधिकारिक समस्या-निवारण दस्तावेज़ कारण समझ न आने पर रीसेट के लिए यह क्रम बताता है: /logout→Claude Code बंद करें→claude से फिर शुरू करके साइन इन करें। /logout पहली बार शुरू होने वाली सेटिंग की स्थिति भी रीसेट कर देता है, इसलिए अगली बार शुरू करने पर लॉगिन और प्रारंभिक सेटअप दोनों दोबारा करने होंगे। सहेजे गए सभी क्रेडेंशियल मिट जाते हैं, और MCP सर्वर के लॉगिन व प्लगइन के गोपनीय मान भी फिर से डालने पड़ते हैं। अगर OAuth error: Invalid code दिखे, तो वजह लॉगिन कोड की अवधि खत्म होना या कॉपी करते समय कोड अधूरा रह जाना है; ब्राउज़र खुलते ही प्रक्रिया तुरंत पूरी करें और URL को c से पूरा कॉपी करें।

4. कैसे पक्का करें कि ठीक हो गया

एक बार त्रुटि न आने को ही अंत न मानें; नीचे की तीन चीज़ों से पुष्टि करें।

/status का प्रदर्शन

Login पंक्ति से Expired — log in again हटा या नहीं, और संगठन व ईमेल इच्छित खाते के हैं या नहीं। लॉगिन और API कुंजी दोनों हों, तो जो इस्तेमाल नहीं हो रहा उस पर निशान लगता है

claude auth status का एग्ज़िट कोड

आधिकारिक CLI संदर्भ के अनुसार, साइन इन हो तो 0 और न हो तो 1 पर खत्म होता है। स्क्रिप्ट में पहले से जाँचने के लिए उपयोगी

छोटा जवाब आता है या नहीं

मॉडल को अनुरोध सच में जा रहा है या नहीं, यह जवाब आने पर ही पता चलता है। जाँच वाले संदेश पर भी सामान्य रूप से उपयोग गिना जाता है

# पढ़ने लायक रूप में दिखाएँ
claude auth status --text

# एग्ज़िट कोड देखें (macOS / Linux)
claude auth status; echo $?

# एग्ज़िट कोड देखें (PowerShell)
claude auth status; $LASTEXITCODE

जवाब जाँचने के लिए, उदाहरण के तौर पर ऐसा संदेश भेजें।

यह कनेक्शन की जाँच है। फ़ाइलें न पढ़ें, न लिखें, और कोई टूल न चलाएँ;
सिर्फ़ “जवाब दे पा रहा हूँ” लिखकर लौटाएँ।

5. बार-बार दिखे तो क्या जाँचें

एक बार आए तो /login से बात खत्म। अगर यह कुछ-कुछ दिनों में या लगभग रोज़ आ रहा है, तो नीचे की बातें ऊपर से क्रम में जाँचें। ये सब आधिकारिक दस्तावेज़ या CHANGELOG में लिखी बातें हैं; अनुमान से कोई बिंदु नहीं जोड़ा गया। सबसे पहले देखें कि संस्करण पुराना तो नहीं।

claude --version
claude update

समानांतर सेशन और स्लीप से लौटना

आधिकारिक दस्तावेज़ के अनुसार, एक ही मशीन के समानांतर सेशन सहेजा गया लॉगिन साझा करते हैं और नवीनीकरण एक बार में एक ही प्रोसेस करती है। v2.1.211 से पहले, स्लीप से लौटने पर दो सेशन एक ही टोकन से नवीनीकरण कर देते थे, जिससे सहेजा गया लॉगिन अमान्य हो जाता और सभी सेशन एक साथ लॉगिन माँगने लगते थे

उसी मशीन पर पुराना बिल्ड चल रहा है

CHANGELOG की v2.1.277 में लिखा है कि IDE एक्सटेंशन के साथ आए CLI जैसे पुराने बिल्ड उसी मशीन पर चलने से अनपेक्षित रूप से लॉग आउट होने की समस्या ठीक की गई। उस समय कौन-सा संदेश दिखता था, यह नहीं लिखा है। CLI और IDE एक्सटेंशन दोनों अपडेट करें

macOS की कीचेन

कीचेन लॉक हो या उसका पासवर्ड खाते के पासवर्ड से मेल न खाए, तो लिखना अस्वीकार होता है और लॉगिन सादे टेक्स्ट वाली ~/.claude/.credentials.json में सहेजा जाता है। नीचे के कदमों से कीचेन को लिखने योग्य स्थिति में लाएँ। 26 सितंबर 2026 को जोड़ा गया: CHANGELOG की v2.1.281 में लिखा है कि स्लीप से लौटने के तुरंत बाद जैसी स्थितियों में, जब कीचेन लॉक हो, लिखते समय कीचेन की प्रविष्टि मिट जाने की समस्या ठीक की गई

सिस्टम की घड़ी

आधिकारिक समस्या-निवारण दस्तावेज़ कहता है कि टोकन की जाँच सही समय पर निर्भर करती है, इसलिए बार-बार लॉगिन माँगा जाए तो घड़ी सही है या नहीं, यह देखें। OS का स्वचालित समय-मिलान चालू करें

कई खाते और CLAUDE_CONFIG_DIR

CLAUDE_CONFIG_DIR सेट करने पर क्रेडेंशियल उस फ़ोल्डर में रखे जाते हैं, और macOS कीचेन की प्रविष्टियाँ भी फ़ोल्डर के हिसाब से अलग हो जाती हैं। जिस सेशन में संदेश आया, उससे अलग मान के साथ /login करने पर लॉगिन किसी दूसरी जगह सहेजा जाता है

दोबारा साइन इन के बाद भी वही संदेश

v2.1.235 से पहले, खाते का होल्ड भी Login expired के रूप में दिखता था। पुराने संस्करण पर /login के बाद भी संदेश न हटे, तो अपडेट करके संदेश दोबारा देखें

macOS में कीचेन को लिखने योग्य स्थिति में लाना

यह आधिकारिक समस्या-निवारण दस्तावेज़ के कदम हैं। अगर claude doctor की रिपोर्ट में macOS Keychain is not writable से शुरू होने वाली चेतावनी नहीं है, तो कीचेन लिखने योग्य है; तब सिर्फ़ कदम 4 करें।

  1. claude doctor से कीचेन तक पहुँच जाँचें
  2. चेतावनी हो तो नीचे की कमांड से लॉक खोलें और फिर से claude doctor चलाएँ
  3. लॉक खोलने पर भी चेतावनी बनी रहे, तो Keychain Access में login कीचेन चुनें और आधिकारिक कदमों में दिए Edit > Change Password for Keychain "login" (अंग्रेज़ी इंटरफ़ेस में मेनू का नाम) से उसे खाते के पासवर्ड से मिलाएँ
  4. चेतावनी हट जाए तो /logout→/login से दोबारा साइन इन करें; लॉगिन फिर से कीचेन में सहेजा जाएगा
claude doctor
security unlock-keychain ~/Library/Keychains/login.keychain-db

क्या API कुंजी पर जाने से यह संदेश आना बंद हो जाएगा

हाँ, बंद हो जाएगा, लेकिन बिलिंग का तरीका बदल जाता है। आधिकारिक प्राथमिकता-क्रम में, ANTHROPIC_API_KEY को मंज़ूरी देने पर वह /login वाले लॉगिन से ऊपर आ जाती है, और -p के नॉन-इंटरैक्टिव मोड में सेट होने पर हमेशा इस्तेमाल होती है। उस दौरान का उपयोग सब्सक्रिप्शन से नहीं, बल्कि Console के API उपयोग शुल्क के रूप में बिल होता है। सिर्फ़ “Login expired से बचना है” इस वजह से API कुंजी रखना हम सुझाते नहीं। अगर मकसद बिना निगरानी के चलाना है, तो सब्सक्रिप्शन के साथ इस्तेमाल होने वाला claude setup-token ज़्यादा उपयुक्त है।

6. रिपोर्ट किए गए मामले, जिनका कारण तय नहीं है

Claude Code की GitHub रिपॉज़िटरी में ऐसी बग रिपोर्टें हैं जिनमें यही शब्द मौजूद हैं। 22 सितंबर 2026 को हमने नीचे की 6 रिपोर्टें खोलकर पढ़ीं। सभी उपयोगकर्ताओं की रिपोर्ट या अनुमान हैं, और जितना हमने पढ़ा उसमें Anthropic का कोई सार्वजनिक जवाब नहीं है। लक्षण एक जैसे होने पर भी कारण एक हो, यह ज़रूरी नहीं; इसलिए इन्हें कदमों की तरह न अपनाएँ, बल्कि यह देखने के लिए पढ़ें कि आपकी स्थिति इनसे मिलती है या नहीं।

  • #94464 (macOS, CLI 2.1.270): Claude डेस्कटॉप ऐप में अंतर्निहित Claude Code और टर्मिनल का CLI एक ही ~/.claude इस्तेमाल करते हैं, और टर्मिनल की ओर लगभग रोज़ Login expired आता है। रिपोर्ट करने वाले का अनुमान है कि अंतर्निहित संस्करण जो टोकन नवीनीकृत करता है वह सिर्फ़ फ़ाइल में लिखा जाता है, और कीचेन में पुराना टोकन रह जाता है। बाद की टिप्पणियों में 2.1.273 पर भी यही लक्षण बताया गया है
  • #88583 (macOS, डेस्कटॉप ऐप के साथ आया 2.1.229): समानांतर सेशन नवीनीकरण के लिए आपस में टकराते हैं और कीचेन के क्रेडेंशियल खाली कर दिए जाते हैं। बाद की टिप्पणियों में Windows के 2.1.251 पर Failed to authenticate: OAuth session expired and could not be refreshed आने का उदाहरण भी है
  • #88947 (Linux, 2.1.228–2.1.240): 10 से 24 इंटरैक्टिव सेशन एक ही ~/.claude साझा करते हैं, और एक हफ़्ते के भीतर के अंतराल पर सभी सेशन Login expired हो जाते हैं
  • #95822 (macOS): claude auth status जैसी जल्दी खत्म होने वाली कमांड शुरू होते ही नवीनीकरण शुरू कर देती है और नतीजा सहेजे बिना बंद हो जाती है, जिससे इस्तेमाल हो चुका रिफ़्रेश टोकन पीछे रह जाता है। एक मॉनिटरिंग टूल इसे हर कुछ मिनट में चला रहा था (2.1.259 पर देखा गया)। खंड 4 के claude auth status को कम अंतराल पर बार-बार न चलाना ही सुरक्षित है
  • #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 में ज्ञात समस्याएँ खोजें; न मिले तो OS, इंस्टॉल का तरीका और त्रुटि का पूरा पाठ जोड़कर नई रिपोर्ट करें
  • लॉगिन लूप जैसी खाते से जुड़ी समस्या हो, तो claude.ai (Console उपयोगकर्ता platform.claude.com) में साइन इन करें और नीचे बाईं ओर अपने आद्याक्षरों से “Get help” चुनकर सपोर्ट से संपर्क करें

रिपोर्ट नोट का ढाँचा

एनवायरनमेंट
claude --version का नतीजा / OS / इंस्टॉल का तरीका (नेटिव, npm, डेस्कटॉप ऐप में अंतर्निहित आदि)
संदेश
त्रुटि का पूरा पाठ / घटना का समय और टाइमज़ोन / /status की Login पंक्ति (ईमेल छिपाकर)
स्थिति
एक साथ चल रहे Claude Code की संख्या और प्रकार / क्या यह स्लीप से लौटने या अपडेट के तुरंत बाद हुआ
क्या-क्या आज़माया
/login, /logout, कीचेन की जाँच आदि से पहले और बाद में क्या बदला

8. सारांश

“Login expired · Please run /login” वह संदेश है जो सहेजे लॉगिन का नवीनीकरण ठुकराए जाने और Claude Code के क्रेडेंशियल मिटा देने के बाद आता है। अनुरोध मशीन पर ही रुका होता है, इसलिए दोबारा भेजने से ठीक नहीं होता; सहेजा गया लॉगिन इस्तेमाल करते रहना है, तो /login से दोबारा साइन इन करना ही एकमात्र रास्ता है। /status से समाप्त खाते की पुष्टि करें, उसी खाते से साइन इन करें, और छोटे जवाब से जाँच लें; बस इतना ही।

बार-बार आए तो संस्करण का अपडेट, उसी मशीन पर चल रहे पुराने बिल्ड या IDE एक्सटेंशन, macOS की कीचेन, घड़ी और CLAUDE_CONFIG_DIR इसी क्रम में जाँचें। क्रेडेंशियल के शुरू से न होने वाले Not logged in, या API द्वारा ठुकराए गए OAuth token has expired का इलाज अलग है, इसलिए सबसे पहले संदेश के शब्द मिलाकर देखें। दूसरी त्रुटियाँ Claude Code की आम त्रुटियाँ और उनके समाधान में एक जगह दी गई हैं।

FAQ

Q. “Login expired · Please run /login” का क्या मतलब है?
A. Claude Code ने सहेजा गया लॉगिन अपने-आप नवीनीकृत करने की कोशिश की, अनुरोध ठुकरा दिया गया, और उसने सहेजे गए क्रेडेंशियल मिटा दिए। इसके बाद के अनुरोध API को नहीं भेजे जाते, मशीन पर ही रुक जाते हैं। /login से दोबारा साइन इन करने पर ठीक हो जाता है।

Q. क्या कुछ बार दोबारा कोशिश करने से ठीक हो जाएगा?
A. नहीं। क्रेडेंशियल पहले ही मिटाए जा चुके हैं, और आधिकारिक दस्तावेज़ भी कहते हैं कि साइन इन किए बिना दोबारा कोशिश करने पर हर बार यही संदेश आएगा। नए क्रेडेंशियल सिर्फ़ /login बना सकता है।

Q. क्या इसका मतलब है कि मेरा सब्सक्रिप्शन खत्म हो गया?
A. सिर्फ़ इस संदेश से यह पता नहीं चलता। आधिकारिक विवरण यह है कि सहेजे लॉगिन का नवीनीकरण ठुकराया गया। अगर खाता ही होल्ड पर हो, तो “Your account is on hold” नाम का अलग संदेश आता है। प्लान की स्थिति दोबारा साइन इन करने के बाद /status या claude.ai की सेटिंग में देखें।

Q. Not logged in से यह कैसे अलग है?
A. Not logged in वह स्थिति है जिसमें इस सेशन के पास इस्तेमाल लायक क्रेडेंशियल शुरू से नहीं हैं। Login expired में सहेजा गया लॉगिन था, पर नवीनीकृत न हो पाने से मिटा दिया गया। दोनों का इलाज /login है, लेकिन Not logged in में यह भी देखें कि जिस एनवायरनमेंट वेरिएबल को आप इस्तेमाल करना चाहते थे, वह लोड हुआ है या नहीं।

संदर्भ के लिए प्राथमिक स्रोत