क्या Claude Code ने अचानक आपको ऐसा कोई message दिखाकर login करने को कहा है?

Not logged in · Please run /login
Invalid API key · Fix external API key
Please run /login · API Error: 401 OAuth token has expired ...
API Error: 400 ... This organization has been disabled.

ये "authentication विफल (आप कौन हैं?)" वाले errors हैं, जो आमतौर पर 401/403 के रूप में सामने आते हैं। परेशान करने वाली बात यह है कि ये कितने उलझन भरे दिखते हैं — "मैं पैसे दे रहा हूँ, फिर भी मुझे reject किया जा रहा है" या "कल तक चल रहा था, अब अचानक login माँग रहा है।" लेकिन ज्यादातर कारण बिलकुल सामान्य (textbook) होते हैं, और एक बार जाँचने का क्रम पता चल जाए, तो यह जल्दी ठीक हो जाता है।

सबसे ज़रूरी बात पहले। (1) नंबर-एक auth समस्या यह है कि एक environment variable ANTHROPIC_API_KEY चुपचाप आपकी subscription (Pro/Max) login को override कर देती है — जो अप्रत्याशित pay-as-you-go शुल्क, "organization disabled", और "Invalid API key" का असली कारण बन जाती है। (2) शुरुआत हमेशा /status से होती है ताकि देखा जा सके कि "अभी कौन-सा credential active है।" (3) शक हो तो "भटकी हुई key को unset करें → /logout → /login" करके साफ-सुथरे ढंग से दोबारा अंदर जाएँ।

CLAUDE CODE · AUTH PRECEDENCE

Credentials का एक "वरीयता-क्रम" होता है

— जो ऊपर है वही जीतता है, इसलिए env API key आपकी subscription को override कर देती है

↑ सूची से बाहर (1 से भी ऊपर): अगर आपने Claude apps gateway में sign in किया है, तो सिर्फ़ उसी का token इस्तेमाल होता है (1–7 में से कोई नहीं)
1 Cloud (Bedrock/Agent Platform (Vertex)/Foundry)
2 ANTHROPIC_AUTH_TOKEN (LLM gateways और proxies)
3 ANTHROPIC_API_KEY ← env var यही जीतती है = pay-as-you-go
4 apiKeyHelper
5 CLAUDE_CODE_OAUTH_TOKEN (claude setup-token)
6 Anthropic profiles और federation credentials (ant CLI, Workload Identity Federation)
ant auth login जैसी login profile यहाँ तभी आती है जब उसे ANTHROPIC_PROFILE में नाम से चुना जाए; वरना वह 7 से नीचे रहती है
7 Subscription OAuth (/login) असल में आप यही चाहते हैं

अगर ANTHROPIC_API_KEY आपके environment में बची रह जाती है, तो वह subscription पर वरीयता पा लेती है।
पहले /status से जाँचें → ज़रूरत न हो तो unset ANTHROPIC_API_KEY।

1. यह error आपको क्या बता रहा है

Authentication का मतलब है "यह साबित करना कि आप कौन हैं।" Claude Code "आप" को एक ही credential से साबित करता है, जैसे आपकी subscription OAuth login, कोई API key या cloud credentials। जब वह प्रमाण विफल हो जाता है, तो आपको 401 (authentication_error) या 403 (forbidden) के रूप में reject कर दिया जाता है। प्रमुख messages और उनके अर्थ:

Messageअर्थ
Not logged in · Please run /loginकोई वैध credential नहीं → /login
Invalid API key · Fix external API keyenv var या apiKeyHelper से आई key को API ने reject कर दिया (अगर ANTHROPIC_API_KEY में line break जैसा कोई character हो, तो Claude Code उसे भेजने से पहले ही रोक देता है)
Your ANTHROPIC_API_KEY belongs to a disabled organization · …
API Error: 400 ... This organization has been disabled.
किसी disabled org की पुरानी ANTHROPIC_API_KEY इस्तेमाल हो रही है। अगर कोई env var set न होने पर भी दिखे, तो आपके /login वाला org disabled है (table के नीचे देखें)
OAuth token revoked · Please run /login
Please run /login · API Error: 401 OAuth token has expired ...
हर जगह से sign out / admin ने access हटा दिया (revoked); auto-refresh विफल (expired)
API Error: 403 ... forbidden ... Request not allowedनिष्क्रिय subscription, गायब Console role, या proxy की दखलंदाज़ी

disabled organization वाले message के अंत में "·" के बाद दो में से एक संकेत आता है। Unset the environment variable to use your subscription instead का मतलब है कि /login से save की गई login अभी मौजूद है, इसलिए key हटाते ही आप subscription पर लौट आते हैं। Update or unset the environment variable का मतलब है कि वह key ही आपका एकमात्र credential है: उसे हटाकर /login चलाएँ, या किसी active organization की key से बदलें। अगर कोई environment variable set नहीं है और error फिर भी आता रहे, तो disabled organization वह है जो /login से sign in किए गए account से जुड़ा है। आधिकारिक error reference support से संपर्क करने या किसी दूसरे account से login करने को कहता है।

मिलता-जुलता Login expired · Please run /login उस Not logged in से अलग स्थिति है, जिसमें शुरू से ही कोई credentials नहीं होते: आपके saved login का automatic refresh अस्वीकार हो गया और Claude Code ने credentials मिटा दिए। request भेजी ही नहीं जाती, आपकी मशीन पर ही रुक जाती है, इसलिए retry करने के बजाय /login से दोबारा login करें। विस्तार से Login expired · Please run /login का मतलब और समाधान में समझाया गया है।

Not logged in का संदेश वातावरण के हिसाब से भी बदलता है। Claude Desktop ऐप जो सेशन चलाता है, जैसे Code टैब या Cowork, उनमें Authentication required · Sign in again to continue दिखता है, और आप ऐप से ही दोबारा साइन इन करते हैं। आधिकारिक error reference के अनुसार, अगर आप उसी configuration directory का उपयोग करने वाली Claude Code की किसी दूसरी window में अपने claude.ai अकाउंट से साइन इन करते हैं, तो यह संदेश दिखा रहा interactive सेशन अपने-आप उस login का उपयोग करने लगता है, restart की ज़रूरत नहीं होती। हालाँकि पुराने संस्करणों में संदेश बना रह सकता था। आधिकारिक CHANGELOG के अनुसार, v2.1.281 (23 सितंबर 2026) में दूसरी Claude Code process से login करने के बाद भी सेशन में “Not logged in · Run /login” footer और claude.ai connectors की कमी बनी रहने की समस्या ठीक हुई, और v2.1.286 (30 सितंबर) में macOS पर पुरानी ~/.claude/.credentials.json बची होने पर दूसरी window में /login सफल होने के बाद भी Not logged in या Login expired दिखते रहने की समस्या ठीक हुई। v2.1.286 से पहले के macOS पर, आधिकारिक दस्तावेज़ संदेश दिखाने वाले सेशन को restart करने की सलाह देते हैं।

जब आपके organization की settings subscription से login को रोकती हैं, तो Your organization has disabled Claude subscription access से शुरू होने वाला message दिखता है। यह आपके local credentials की समस्या नहीं है, इसलिए उसी account से /login दोबारा चलाने से यह ठीक नहीं होता। क्या करना है, यह section 7 में है।

मुख्य आदत: खुद को दोष देने से पहले, /status चलाकर देखें कि "अभी कौन-सा credential active है।" ज़्यादातर auth errors की जड़ है किसी अनचाहे credential का चुना जाना — और सबसे बड़ा संदिग्ध है अगले section की "API key override।"

2. सबसे बड़ा जाल — API key आपकी subscription को override कर देती है

आधिकारिक docs बताते हैं कि Claude Code "वरीयता-क्रम" के अनुसार सिर्फ़ एक credential चुनता है (hero देखें)। पेच यह है कि environment variable ANTHROPIC_API_KEY आपकी subscription (Pro/Max) login के ऊपर बैठती है। यानी —

आधिकारिक व्याख्या (सार रूप में)

"active subscription होने पर भी, अगर आपके environment में ANTHROPIC_API_KEY set है, तो approve होने के बाद वही वरीयता पाती है। अगर वह key किसी disabled या expired org की है, तो authentication विफल हो जाता है। subscription पर वापस लौटने के लिए unset ANTHROPIC_API_KEY चलाएँ, और /status से पुष्टि करें कि कौन-सा active है।"

यह override तीन "उलझन भरे" लक्षण पैदा करता है। (1) अप्रत्याशित pay-as-you-go शुल्क — जो एक flat subscription होनी चाहिए, उस पर API key के ज़रिए प्रति-token शुल्क लगता है। (2) Your ANTHROPIC_API_KEY belongs to a disabled organization (या This organization has been disabled) — बची रह गई key किसी disabled पुराने org की थी। (3) Invalid API key — key expired या गलत है। इनमें से कोई भी "आपकी login की समस्या" नहीं है — ये "environment में एक भटकी हुई key के जमे रहने की समस्या" हैं। इसके अलावा, जब तक यह override चलता है, claude.ai में जोड़े गए connectors भी load नहीं होते, और claude.ai connectors are disabled से शुरू होने वाली चेतावनी दिख सकती है। विस्तार से claude.ai connectors are disabled का मतलब और समाधान में समझाया गया है।

key कहाँ से आती है: ~/.zshrc / ~/.bashrc / ~/.profile में कोई export ANTHROPIC_API_KEY=...; direnv, dotenv, या आपके IDE terminal द्वारा पढ़ी जाने वाली कोई .env; किसी पिछली नौकरी/project का अवशेष; कोई CI environment। Windows पर, PowerShell profile ($PROFILE) या User environment variables। /status और env | grep ANTHROPIC से पता लगाएँ; ठीक इस तरह करें:

# अस्थायी रूप से unset करके launch करें
unset ANTHROPIC_API_KEY
claude

# स्थायी समाधान: अपनी shell config / .env से export line हटाएँ, फिर /status से पुष्टि करें

ध्यान दें: interactive mode में आपसे एक बार पूछा जाता है कि key इस्तेमाल करनी है या नहीं, और आपका चुनाव याद रखा जाता है (बाद में बदलने के लिए /config में "Use custom API key" toggle का उपयोग करें; यह toggle तभी दिखता है जब ANTHROPIC_API_KEY set हो)। non-interactive mode (-p) में key मौजूद हो तो बिना पूछे हमेशा इस्तेमाल होती है। जब तक आप जानबूझकर API key इस्तेमाल नहीं करना चाहते, /status से पुष्टि करें कि subscription active है।

3. अन्य कारण

override के अलावा बाकी auth समस्याओं के कारण भी आमतौर पर तयशुदा होते हैं।

OTHER CAUSES

override से परे की auth ठोकरें

Token revoked / expired
हर जगह से sign out / admin ने access हटाया / refresh विफल। /logout → /login से दोबारा अंदर जाएँ।
System घड़ी का गड़बड़ होना
Token की पुष्टि सही समय पर निर्भर है। अगर हर बार launch पर login माँगा जाए, तो घड़ी ठीक करें।
macOS Keychain
locked Keychain / password के बेमेल पर login plaintext file ~/.claude/.credentials.json में save होती है, और API key बनाने वाला Console login विफल होता है। claude doctor से जाँचें।
गायब Console role (403)
Console account के लिए "Claude Code" / "Developer" role की, और Pro/Max के लिए active subscription की पुष्टि करें।
WSL/SSH/containers में OAuth
browser redirect स्थानीय रूप से वापस नहीं लौट सकता। दिखाया गया code paste करें, URL कॉपी करने के लिए c दबाएँ, या BROWSER set करें।
Org policy
subscription access का disabled होना server-side setting है, जिसे आप स्थानीय रूप से override नहीं कर सकते (section 7)। API key authentication का disabled होना आप खुद ठीक कर सकते हैं: key (या apiKeyHelper) हटाएँ और /login चलाएँ।

"हर बार login माँगा जाना" → पहले घड़ी का गड़बड़ होना या Keychain पर शक करें।
"403 के साथ reject" → पहले निष्क्रिय subscription, Console role, या proxy पर शक करें।

यह जानना कि credentials कहाँ रहते हैं, recovery को भी तेज़ करता है। macOS: Keychain (Keychain में लिखना न हो पाए तो Linux वाली ही file); Linux: ~/.claude/.credentials.json (mode 0600); Windows: %USERPROFILE%\.claude\.credentials.json। इस file को /login और /logout manage करते हैं। कुछ गड़बड़ लगे तो file को हाथ से delete करने के बजाय आधिकारिक तरीका अपनाएँ: /logout → Claude Code बंद करें → फिर से शुरू करके /login करें। logout सभी saved credentials हटा देता है, जिनमें MCP servers के login और plugins की secret values भी शामिल हैं, इसलिए बाद में MCP servers को फिर से authorize करना और वे secrets दोबारा डालना होगा (आधिकारिक login और authentication troubleshooting)।

4. निदान (diagnosis) का workflow

जब auth पर अटक जाएँ, तो ऊपर से नीचे की ओर चलें। ज़्यादातर मामले step 3 तक सुलझ जाते हैं।

DIAGNOSE

ऊपर से नीचे तक अलग करें

1
/status से देखें कि कौन-सा credential active है (subscription, API key, या cloud)।
2
env | grep ANTHROPIC (Windows: $PROFILE / User env vars) से किसी भटकी हुई key को खोजें।
3
unset ANTHROPIC_API_KEY → दोबारा launch करें। अपनी shell config / .env से export line हटाकर इसे स्थायी बनाएँ।
4
फिर भी विफल? साफ-सुथरे re-auth के लिए /logout → Claude Code बंद करें → /login।
5
घड़ी ठीक करें / claude doctor से Keychain जाँचें (macOS) / अपनी Console role की पुष्टि करें (orgs)।

नियम: "पहले /status, फिर भटकी हुई key की तलाश।"
ज़्यादातर मामले बस उस key को हटाने भर से ठीक हो जाते हैं जो आपको override कर रही थी।

5. मिलते-जुलते errors से फर्क करना

"reject / रुक गया" के गैर-auth कारण भी हो सकते हैं। HTTP code के आधार पर बाँटना भरोसेमंद तरीका है।

लक्षणअसल में यह क्या हैमुख्य उपाय
401 / 403 · Invalid API key · Not logged inयह लेख = auth (credential की समस्या)/status → भटकी key हटाएँ → /login
usage limit reachedPlan quota खत्म (auth ठीक है)reset का इंतज़ार करें; उपाय
429 Request rejectedRate limit (low-tier key override भी 429 ला सकती है)गति धीमी करें; /status से भटकी key भी जाँचें
529 / 500Server-side overload / internal errorइंतज़ार करके retry करें; उपाय
Credit balance is too lowConsole prepaid balance खत्म, या subscription इस्तेमाल करना था पर requests Console की API key से जा रही हैंcredits जोड़ें। subscription के लिए /status में key देखें और unset करें (login नहीं किया हो तो /login)

एक याद रखने का तरीका: 401/403 "आप कौन हैं?" वाली समस्या है = auth। usage limit और Credit balance "मात्रा / शेष" वाली समस्याएँ हैं। 429 rate है, 529/500 server-side है। खास बात यह है कि एक भटकी हुई API key सिर्फ़ "auth विफलता" ही नहीं, बल्कि "अप्रत्याशित शुल्क", "low tier पर 429" और "Credit balance is too low" भी पैदा करती है — इसीलिए उलझन का जवाब हमेशा पहले /status है। बैलेंस कम होने वाली error का समाधान Your credit balance is too low to access the Anthropic API: समाधान में है। अन्य आम errors के लिए, error संग्रह देखें।

6. रोकथाम checklist

auth पर बार-बार न अटकने के लिए एक checklist।

(1) अगर आप subscription इस्तेमाल करते हैं, तो ANTHROPIC_API_KEY को अपनी shell config / .env में न छोड़ें (पुरानी नौकरियों/projects के अवशेषों से सावधान रहें)। (2) ज़रूरी काम से पहले /status चलाकर active credential की पुष्टि करने की आदत बनाएँ। (3) CI के लिए, interactive login की जगह claude setup-token का CLAUDE_CODE_OAUTH_TOKEN (या एक स्पष्ट API key) इस्तेमाल करें। (4) अगर हर बार login माँगा जाए, तो system घड़ी और macOS Keychain जाँचें। (5) org accounts के लिए, Console role और plan की स्थिति की पुष्टि करें। (6) WSL/SSH में, code-paste तरीका जान लें।

7. Your organization has disabled Claude subscription access — आपके organization ने subscription login बंद कर रखा है

Subscription account से Claude Code में login करते समय आपको यह message रोक सकता है:

Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

इसका मतलब है कि आपका account जिस organization (आपका Claude organization) का है, वह subscription login के ज़रिए Claude Code इस्तेमाल करने की अनुमति नहीं देता। Section 2 की बची रह गई API key या section 3 के expired token से अलग, इसकी वजह आपकी machine पर नहीं, बल्कि आपके organization की settings में है।

आधिकारिक व्याख्या (सार रूप में)

"यह server-side organization setting है, इसलिए इसे local settings, environment variables या CLI flags से override नहीं किया जा सकता। उसी account से /login दोबारा चलाने पर वही error लौटता है। Non-interactive mode (-p) और Agent SDK में यह error code oauth_org_not_allowed के रूप में आता है।"

आधिकारिक docs तीन रास्ते बताते हैं, और कौन-सा आपके लिए है, यह आपकी भूमिका पर निर्भर करता है।

अगर आप organization के member के तौर पर इस्तेमाल करते हैं — admin से access चालू करने को कहें

पहला रास्ता है अपने admin से कहना कि वह आपके organization के लिए Claude Code access चालू करे। आपकी तरफ़ से बदलने लायक कोई setting नहीं है। कहते समय error का सटीक text और /status में दिखने वाला account और organization साथ भेजें, ताकि साफ़ रहे कि किस organization की setting की बात है। ध्यान दें कि आधिकारिक error reference यह नहीं बताता कि admin इसे किस screen पर चालू करता है।

अगर आप API key से इस्तेमाल करते हैं — Claude Console से authenticate करें

दूसरा रास्ता है subscription की जगह Claude Console की API key से authenticate करना। Message में "Use an Anthropic API key instead" का मतलब यही है। तैयारी आधिकारिक Claude Console authentication के steps के अनुसार होती है, और इसे आप अकेले पूरा नहीं कर सकते:

  • Console admin आपको Settings → Members → Invite से invite करता है और "Claude Code" role (सिर्फ़ Claude Code की API keys बना सकता है) या "Developer" role (किसी भी तरह की API key बना सकता है) देता है
  • Invite स्वीकार करने के बाद Claude Code में /login चलाएँ और login के लिए Anthropic Console account चुनें। Console में बनाई गई key को ANTHROPIC_API_KEY environment variable में रखकर Claude Code शुरू करने का तरीका भी है (interactive mode में आपसे एक बार पूछा जाता है कि वह key इस्तेमाल करनी है या नहीं)
  • /status चलाकर पुष्टि करें कि active credential अब Console वाला है

दो सावधानियाँ हैं। पहली है लागत: Console के ज़रिए इस्तेमाल का बिल subscription में शामिल usage से नहीं, बल्कि API usage charges के रूप में आता है (यह वही तंत्र है जो section 2 के "अप्रत्याशित pay-as-you-go शुल्क" के पीछे है, बस इस बार जानबूझकर)। दूसरी है उल्टी दिशा का error: अगर Console वाले organization ने API key authentication बंद कर रखा है, तो Your organization has disabled API key authentication दिखेगा (यह message v2.1.169 से है)। उसका आधिकारिक समाधान भी उल्टा है — key हटाएँ और claude.ai account से login करने के लिए /login चलाएँ।

अगर आप organization के admin हैं

अगर आप admin हैं और access चालू करने का कोई option नहीं दिखता, तो आधिकारिक docs Anthropic support से संपर्क करने को कहते हैं।

स्रोत: Claude Code का आधिकारिक error reference (इस error और Your organization has disabled API key authentication की entries), authentication docs का Claude Console authentication section, और Claude Help Center का लेख Use Claude Code with your Pro or Max plan (सभी 22 सितंबर 2026 को जाँचे गए)।

सारांश

Claude Code की auth/login errors (Not logged in / Invalid API key / organization disabled / OAuth token expired, आदि) ज़्यादातर 401/403 = credential की समस्याएँ हैं। सबसे आम असली कारण है "environment variable ANTHROPIC_API_KEY का चुपचाप आपकी subscription login को override करना" — जो अप्रत्याशित pay-as-you-go शुल्क, organization disabled, और Invalid API key पैदा करता है। इसलिए शुरुआत हमेशा /status से होती है ताकि देखा जा सके कि "कौन-सा credential active है।"

निदान इस तरह करें: (1) /status -> (2) env | grep ANTHROPIC से भटकी key खोजें -> (3) unset + shell config से हटाएँ -> (4) /logout -> /login -> (5) घड़ी / Keychain / Console role। ज़्यादातर मामले बस उस key को हटाने भर से ठीक हो जाते हैं जो आपको override कर रही थी। गलत उपाय से बचने के लिए इस तरह बाँटें: 401/403 = auth, usage limit / Credit = मात्रा-शेष, 429 = rate, 529/500 = server। संबंधित: usage limit, 529/500 errors, Claude Code error संग्रह।

FAQ

Q. मैं पैसे दे रहा हूँ, फिर भी "Invalid API key" या "organization has been disabled" आता है। क्यों?
A. ज़्यादातर मामलों में, एक environment variable ANTHROPIC_API_KEY आपकी subscription login को override कर रही है। अगर वह key किसी expired या disabled org की है, तो active subscription होने पर भी आपको reject किया जाता है। इसे env | grep ANTHROPIC से खोजें, unset ANTHROPIC_API_KEY चलाएँ, फिर /login करके /status से पुष्टि करें। अपनी shell config (.zshrc, आदि) या .env से export line भी हटाएँ। अगर कोई environment variable set नहीं है और "organization disabled" फिर भी आता रहे, तो आपके /login वाला organization disabled है: support से संपर्क करें या किसी दूसरे account से login करें।

Q. मैं एक flat subscription पर हूँ, फिर भी प्रति-token bill आया।
A. यह भी आमतौर पर ANTHROPIC_API_KEY override ही है। जब API key वरीयता पाती है, तो उपयोग आपकी flat subscription की जगह प्रति-token API billing में चला जाता है। /status से पुष्टि करें कि "subscription active है"; अगर API key चुनी गई है, तो उसे unset + config की सफाई से हटाएँ। इसे सिर्फ़ तभी रखें जब आप जानबूझकर API key इस्तेमाल करना चाहते हों।

Q. हर बार शुरू करने पर मुझसे login माँगा जाता है।
A. आम कारण हैं (1) system घड़ी का गड़बड़ होना (token की पुष्टि सही समय पर निर्भर है) और (2) locked macOS Keychain / password का बेमेल जिसकी वजह से Keychain में लिखा नहीं जा पाता (तब login plaintext file ~/.claude/.credentials.json में save होती है, और API key बनाने वाला Console login विफल होता है)। घड़ी को auto-sync पर set करें, और macOS पर claude doctor से Keychain जाँचें। अगर बना रहे, तो /logout → /login से साफ-सुथरे ढंग से दोबारा अंदर जाएँ।

Q. /status मुझे क्या बताता है?
A. यह दिखाता है कि अभी कौन-सी authentication method/credential active है (subscription OAuth, ANTHROPIC_API_KEY, या cloud credentials)। चूँकि ज़्यादातर auth परेशानी "किसी अनचाहे credential के चुने जाने" से होती है, इसलिए पहले /status नियम है। सटीक प्रदर्शन version के अनुसार बदलता है, इसलिए मौजूदा व्यवहार की पुष्टि आधिकारिक docs में करें।

Q. WSL या SSH पर login विफल हो जाता है क्योंकि browser नहीं खुलता।
A. remote setups पर, browser redirect स्थानीय callback पर वापस नहीं लौट सकता। इसका हल: Claude Code द्वारा दिखाया गया login code paste करें, URL कॉपी करने के लिए c दबाकर उसे अपने local browser में खोलें, या WSL2 पर BROWSER environment variable set करें। code-paste तरीका जान लेने से यह भरोसेमंद हो जाता है।