目次
Claude Code で、急にこんなメッセージが出てログインを求められたことはないだろうか:
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.
これらは 「認証(あなたが誰か)の確認に失敗した」系のエラーだ。多くは 401/403 として現れる。厄介なのは、「課金しているのに弾かれる」「昨日まで使えたのに急にログインを求められる」といった、一見不可解な出方をすること。だが 原因の大半は典型的で、切り分けの順番さえ分かれば短時間で直る。
先に最重要ポイント。① 認証トラブルで一番多いのは「環境変数 ANTHROPIC_API_KEY がサブスク(Pro/Max)ログインを“黙って上書き”していること」——これが 予期せぬ従量課金・「organization disabled」・「Invalid API key」の正体になりやすい。② まず /status で「今どの資格情報で動いているか」を見るのが全ての出発点。③ 迷ったら「不要なキーを unset → /logout → /login」でクリーンに入り直す。
資格情報には「優先順位」がある
— 上にあるものが勝つ。だから環境変数のAPIキーがサブスクを上書きする。
ANTHROPIC_AUTH_TOKEN(LLMゲートウェイ・プロキシ用)
ANTHROPIC_API_KEY ← 環境変数
これが勝つ=従量課金に
apiKeyHelper
CLAUDE_CODE_OAUTH_TOKEN(claude setup-token)
ant CLI・Workload Identity Federation)ant auth login などのログイン型プロファイルは、ANTHROPIC_PROFILE で指定したときだけここ。指定しなければ7より下
/login)
本当はこれを使いたい
ANTHROPIC_API_KEY が環境に残っていると、サブスクより優先されてしまう。
まず /status で確認 → 不要なら unset ANTHROPIC_API_KEY。
1. このエラーは何を言っているのか
認証(authentication)とは 「あなたが誰であるかを証明する」こと。Claude Code は、サブスクのOAuthログイン、APIキー、クラウド資格情報などのうち1つで「あなた」を証明する。この証明に失敗すると、401(authentication_error)や 403(forbidden)として弾かれる。代表的な文言と意味はこうだ。
| メッセージ | 意味 |
|---|---|
| Not logged in · Please run /login | 有効な資格情報が無い → /login |
| Invalid API key · Fix external API key | 環境変数や apiKeyHelper のキーがAPIに拒否された(ANTHROPIC_API_KEY に改行などが混じっていると、送る前に Claude Code が止める) |
| Your ANTHROPIC_API_KEY belongs to a disabled organization · … API Error: 400 ... This organization has been disabled. | 無効化された組織の古い ANTHROPIC_API_KEY が使われている、環境変数が無いのに出るなら、/login 側の組織が無効(表の下で説明) |
| OAuth token revoked · Please run /login Please run /login · API Error: 401 OAuth token has expired ... | 全端末でサインアウトした/管理者がアクセスを外した(revoked)、自動更新の失敗(expired) |
| API Error: 403 ... forbidden ... Request not allowed | サブスク失効・Consoleロール不足・プロキシ干渉 |
無効化された組織の表示は、「·」の後ろが2通りある。Unset the environment variable to use your subscription instead なら、/login で保存したログインが残っているので、キーを外せばサブスクで動く。Update or unset the environment variable なら、そのキーが唯一の資格情報だ。キーを外して /login するか、有効な組織のキーに差し替える。環境変数を何も設定していないのに出続けるなら、無効になっているのは /login で入ったアカウントの組織だ。公式のエラーリファレンスは、サポートに連絡するか、別のアカウントでログインするよう案内している。
よく似た Login expired · Please run /login は、資格情報が最初から無い Not logged in とは別の状態だ。保存していたログインの自動更新が拒否され、Claude Code が資格情報を消したあとに出る。リクエストは送られずに手元で止まるので、再試行ではなく /login で入り直す。詳しくはLogin expired · Please run /login の意味と対処で解説している。
Not logged in の文言は環境で変わる。Claude Desktop アプリが動かすセッション(Code タブや Cowork)では Authentication required · Sign in again to continue と出て、アプリからサインインし直す。また公式のエラーリファレンスによると、同じ設定ディレクトリを使う別の Claude Code のウィンドウで claude.ai のアカウントにサインインすれば、この表示が出ている対話セッションはそのログインを自動で使い始める。再起動は要らない。ただし古い版では表示が残ることがあった。公式CHANGELOGによると、v2.1.281(2026年9月23日)で「別の Claude Code プロセスでログインした後も、Not logged in · Run /login のフッターが残り、claude.ai のコネクタも欠けたままになる問題」が、v2.1.286(9月30日)で「macOS で古い ~/.claude/.credentials.json が残っていると、別のウィンドウで /login が成功しても Not logged in や Login expired の表示が続く問題」が直った。v2.1.286 より前の macOS では、表示が出ているセッションを再起動するよう公式は案内している。
組織の設定でサブスクのログインが止められているときは、Your organization has disabled Claude subscription access で始まるメッセージが出る。手元の資格情報の問題ではないので、同じアカウントで /login し直しても直らない。対処は7章にまとめた。
重要なのは 「自分を責める前に、まず /status で“今どの資格情報で動いているか”を確認する」こと。認証エラーの多くは、意図しない資格情報が選ばれていることに起因する。その筆頭が次章の「APIキーによる上書き」だ。
2. 最大の罠——APIキーがサブスクを上書きする
公式ドキュメントは、Claude Code が 複数の資格情報の中から1つを「優先順位」で選ぶと明記している(冒頭ヒーロー参照)。問題は、環境変数 ANTHROPIC_API_KEY が、サブスク(Pro/Max)ログインより上位にあること。つまり次のとおり。
公式の説明(要旨)
「有効なサブスクがあっても、環境に ANTHROPIC_API_KEY があれば(承認後)そちらが優先される。そのキーが無効・期限切れの組織のものだと認証に失敗する。unset ANTHROPIC_API_KEY でサブスクに戻し、/status でどちらが有効か確認すること」。
この上書きが、3つの“不可解な症状”を生む。① 予期せぬ従量課金——サブスク定額のはずが、APIキー経由でトークン従量で課金される。② Your ANTHROPIC_API_KEY belongs to a disabled organization(または This organization has been disabled)——残っていたキーが無効化された古い組織のものだった。③ Invalid API key——キーが失効・誤り。いずれも 「あなたのログインの問題」ではなく「余計なキーが居座っている問題」だ。さらに、この上書きが起きている間は claude.ai で追加したコネクタも読み込まれず、claude.ai connectors are disabled で始まる警告が出ることがある。詳しくはclaude.ai connectors are disabled の意味と対処で解説している。
キーはどこから来るのか:~/.zshrc・~/.bashrc・~/.profile の export ANTHROPIC_API_KEY=...、direnv や dotenv、IDEのターミナルが読む .env、前職・別プロジェクトの残骸、CI環境。Windows なら PowerShell プロファイル($PROFILE)やユーザー環境変数。検出は /status と env | grep ANTHROPIC、修正は次のとおり。
# 一時的に外して起動
unset ANTHROPIC_API_KEY
claude
# 恒久対策:シェル設定や .env から export 行を削除し、/status で確認
なお対話モードでは 初回にキーの使用可否を一度尋ねられ、選択が記憶される(後から変えるには /config の「Use custom API key」トグル。トグルは ANTHROPIC_API_KEY が設定されている間だけ出る)。非対話モード(-p)では、キーがあれば尋ねられずに常に使われる。意図的にAPIキーで使いたいのでなければ、サブスクを使うよう /status で必ず確認しよう。
3. その他の原因
上書き以外の認証トラブルも、原因はだいたい決まっている。
上書き以外の認証つまづき
/logout → /login で入り直す。~/.claude/.credentials.json に退避され、APIキーを作る Console ログインは失敗する。claude doctor で点検。c でURLコピー、BROWSER 設定も。apiKeyHelper)を外して /login すれば手元で直る。
「毎回ログインを求められる」は時計ずれ or キーチェーンを、
「403で弾かれる」はサブスク失効・Consoleロール・プロキシをまず疑う。
認証情報の保存場所も知っておくと復旧が速い。macOS は Keychain(書き込めないときは Linux と同じファイルに退避)、Linux は ~/.claude/.credentials.json(権限0600)、Windows は %USERPROFILE%\.claude\.credentials.json。このファイルは /login と /logout が管理する。おかしくなったら、ファイルを手で消すより、公式の手順どおり /logout → Claude Code を閉じる → 起動して /login で入り直す。ログアウトすると保存された資格情報がすべて消えるので、MCP サーバーのログインやプラグインの秘密の設定値も消え、あとで入れ直すことになる(公式のログインと認証のトラブルシューティング)。
4. 切り分けワークフロー
認証で詰まったら、上から順に。ほとんどはステップ3までで解決する。
上から順に切り分ける
/status で今どの資格情報が有効かを確認(サブスクか、APIキーか、クラウドか)。env | grep ANTHROPIC(Windowsは $PROFILE・ユーザー環境変数)で余計なキーを探す。unset ANTHROPIC_API_KEY → 再起動。シェル設定・.env から export 行を削除して恒久化。/logout → Claude Code を閉じる → /login でクリーン認証。claude doctor でキーチェーン点検/組織ならConsoleロール確認。
鉄則:「まず /status、次に余計なキー狩り」。
大半は「上書きしていたキーを外す」だけで直る。
5. 紛らわしいエラーとの区別
「弾かれた/止まった」は、認証以外の原因のこともある。HTTPコードで切り分けるのが確実だ。
| 症状 | 正体 | 主な対処 |
|---|---|---|
| 401 / 403・Invalid API key・Not logged in | 本記事=認証(資格情報の問題) | /status → 余計なキーを外す → /login |
| usage limit reached | プラン枠の使い切り(認証は正常) | リセット待ち・対処 |
| 429 Request rejected | レート制限(※低Tierのキーに上書きされ429になることも) | 流量を落とす、/status でキー混入も確認 |
| 529 / 500 | サーバ側の過負荷・内部エラー | 待って再試行・対処 |
| Credit balance is too low | Consoleのプリペイド残高切れ、またはサブスクのつもりが Console のAPIキーで送っている | 残高チャージ、サブスクで使うなら /status でキーを確かめて unset(未ログインなら /login) |
覚え方:401/403 は「あなたが誰か」の問題=認証。usage limit と Credit balance は「量/残高」の問題。429 はレート、529/500 はサーバ側。とくに 余計なAPIキーは「認証失敗」だけでなく「予期せぬ課金」「低Tierでの429」「Credit balance is too low」まで引き起こすので、困ったらまず /status なのだ。残高切れのエラーの直し方は Your credit balance is too low to access the Anthropic API の意味と直し方 で解説している。その他の頻出エラーは エラー集にまとまっている。
6. 再発防止チェックリスト
認証で繰り返しハマらないためのチェックリスト。
① サブスクで使うなら、シェル設定・.env に ANTHROPIC_API_KEY を残さない(前職/別案件の残骸に注意)。② 重要作業の前に /status で有効な資格情報を確認する習慣。③ CI で使うなら、対話ログインではなく claude setup-token の CLAUDE_CODE_OAUTH_TOKEN(または明示的にAPIキー)を使う。④ 「毎回ログイン」が起きるならシステム時計とmacOSキーチェーンを点検。⑤ 組織アカウントはConsoleロールとプラン状態を確認。⑥ WSL/SSHではコード貼り付け方式を覚えておく。
7. Your organization has disabled Claude subscription access——組織がサブスクでのログインを止めている
サブスクのアカウントで Claude Code にログインしようとすると、次のメッセージで止まることがある。
Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access
意味は、ログインしたアカウントが属する組織(Claude の organization)が、サブスクのログインで Claude Code を使うことを許可していないということだ。2章の「居座ったAPIキー」や3章の「トークン失効」とは違い、原因は手元ではなく組織の設定にある。
公式の説明(要旨)
「サーバ側の組織設定なので、ローカルの設定・環境変数・CLI のフラグでは上書きできない。同じアカウントで /login し直しても同じエラーになる。非対話モード(-p)と Agent SDK では、エラーコード oauth_org_not_allowed として返る」。
公式が挙げている対処は次の3つで、どれを取るかはあなたの立場で決まる。
組織のメンバーとして使っている場合——管理者に有効化を頼む
1つめは、組織で Claude Code のアクセスを有効にするよう管理者に頼むこと。利用者の側で変えられる設定は無い。頼むときは、画面に出たエラー文をそのまま渡し、/status に表示されるアカウントと組織を添えると、どの組織の設定の話かが伝わりやすい。なお公式のエラー解説は、管理者がどの画面で有効にするかまでは書いていない。
APIキーで使う場合——Claude Console で認証する
2つめは、サブスクの代わりに Claude Console のAPIキーで認証すること。エラー文の「Use an Anthropic API key instead」はこれを指す。準備は公式の Claude Console 認証の手順どおりで、利用者1人では完結しない。
- Console の管理者が Settings → Members → Invite から招待し、「Claude Code」ロール(Claude Code 用のAPIキーだけを作れる)か「Developer」ロール(どの種類のAPIキーも作れる)を割り当てる
- 招待を承認してから、Claude Code で
/loginを実行し、Anthropic Console のアカウントを選んでサインインする。Console で作ったキーを環境変数ANTHROPIC_API_KEYに入れて起動する方法もある(対話モードでは最初に一度、そのキーを使うかを聞かれる) /statusで、いま使われている資格情報が Console 側に切り替わったかを確かめる
注意が2つある。1つは料金で、Console 経由の利用はサブスクの利用枠ではなくAPIの利用料として請求される(2章の「予期せぬ従量課金」と同じ仕組みを、今度は意図して使うことになる)。もう1つは逆向きのエラーで、Console 側の組織がAPIキー認証を止めていると、今度は Your organization has disabled API key authentication が出る(v2.1.169 以降の表示)。こちらは公式の対処も逆で、キーを外して /login で claude.ai のアカウントに入り直す。
自分が組織の管理者の場合
管理者として確かめても有効にする項目が見当たらないときは、Anthropic のサポートに問い合わせるよう公式は案内している。
出典:Claude Code 公式ドキュメントのエラーリファレンス(本エラーと Your organization has disabled API key authentication の項)、認証ドキュメントの Claude Console 認証、Claude ヘルプセンターのUse Claude Code with your Pro or Max plan(いずれも2026年9月22日に確認)。
まとめ
Claude Code の 認証・ログインエラー(Not logged in/Invalid API key/organization disabled/OAuth token expired 等)は、多くが 401/403=資格情報の問題だ。そして最頻出の真因は 「環境変数 ANTHROPIC_API_KEY がサブスクログインを黙って上書きしている」こと——これが予期せぬ従量課金・organization disabled・Invalid API keyを生む。だから出発点は常に /status で“今どの資格情報か”を確認することだ。
切り分けは ① /status → ② env | grep ANTHROPIC で余計なキー探し → ③ unset+シェル設定から削除 → ④ /logout→/login → ⑤ 時計・キーチェーン・Consoleロール。大半は「上書きしていたキーを外す」だけで直る。401/403=認証、usage limit/Credit=量・残高、429=レート、529/500=サーバと切り分ければ、的外れな対処を避けられる。関連:使用量制限、529/500エラー、Claude Codeエラー集。
FAQ
Q. 課金しているのに「Invalid API key」や「organization has been disabled」が出ます。なぜ?
A. 多くの場合、環境変数 ANTHROPIC_API_KEY がサブスクログインを上書きしています。そのキーが失効・無効化された組織のものだと、サブスクが有効でも弾かれます。env | grep ANTHROPIC で探し、unset ANTHROPIC_API_KEY してから /login、/status でサブスクが有効か確認してください。シェル設定(.zshrc 等)や .env の export 行も削除を。環境変数を何も設定していないのに organization disabled が出続けるなら、無効になっているのは /login 側の組織です。サポートに連絡するか、別のアカウントでログインしてください。
Q. サブスク定額のはずなのに、従量で課金されていました。
A. これも ANTHROPIC_API_KEY の上書きが典型的な原因です。APIキーが優先されると、定額のサブスクではなくトークン従量のAPI課金に流れます。/status で「サブスクが有効」と表示されているかを確認し、APIキーが選ばれているなら unset+設定削除で外してください。意図的にAPIキーを使う場合のみ残します。
Q. 起動するたびにログインを求められます。
A. 多いのは ① システム時計のずれ(トークン検証は正確な時刻に依存)と、② macOSキーチェーンのロック/パスワード不一致で、キーチェーンに書き込めないケースです(このときログインは平文の ~/.claude/.credentials.json に退避され、APIキーを作る Console ログインは失敗します)。時計を自動同期に設定し、macOSなら claude doctor でキーチェーンを点検してください。それでも直らなければ /logout→/login でクリーンに入り直します。
Q. /status では何が分かりますか?
A. 今どの認証方法・資格情報で動いているか(サブスクのOAuthか、ANTHROPIC_API_KEY か、クラウド資格情報か)が分かります。認証トラブルの大半は「意図しない資格情報が選ばれている」ことなので、まず /status が鉄則です。表示の細部はバージョンで変わるため、最新の挙動は公式で確認してください。
Q. WSL や SSH 越しだとログインのブラウザが開かず失敗します。
A. リモート環境では、ブラウザのリダイレクトがローカルのコールバックに戻れないために起きます。Claude Code が表示するログインコードを貼り付ける、c を押してURLをコピーして手元のブラウザで開く、WSL2なら BROWSER 環境変数を設定する、といった方法で回避できます。コード貼り付け方式を覚えておくと確実です。