目次
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 として現れる。厄介なのは、「課金しているのに弾かれる」「昨日まで使えたのに急にログインを求められる」といった、一見不可解な出方をすること。だが 原因の大半は典型的で、切り分けの順番さえ分かれば短時間で直る。
先に最重要ポイント。① 認証トラブルで一番多いのは「環境変数 ANTHROPIC_API_KEY がサブスク(Pro/Max)ログインを“黙って上書き”していること」——これが 予期せぬ従量課金・「organization disabled」・「Invalid API key」の正体になりやすい。② まず /status で「今どの資格情報で動いているか」を見るのが全ての出発点。③ 迷ったら「不要なキーを 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. このエラーは何を言っているのか
認証(authentication)とは 「あなたが誰であるかを証明する」こと。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」表示も) | 環境変数や apiKeyHelper のキーがAPIに拒否された |
| 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 が 複数の資格情報の中から1つを「優先順位」で選ぶと明記している(冒頭ヒーロー参照)。問題は、環境変数 ANTHROPIC_API_KEY が、サブスク(Pro/Max)ログインより上位にあること。つまり——
公式の説明(要旨)
「有効なサブスクがあっても、環境に ANTHROPIC_API_KEY があれば(承認後)そちらが優先される。そのキーが無効・期限切れの組織のものだと認証に失敗する。unset ANTHROPIC_API_KEY でサブスクに戻し、/status でどちらが有効か確認すること」。
この上書きが、3つの“不可解な症状”を生む。① 予期せぬ従量課金——サブスク定額のはずが、APIキー経由でトークン従量で課金される(高額請求の報告例もある)。② This organization has been disabled——残っていたキーが無効化された古い組織のものだった。③ Invalid API key——キーが失効・誤り。いずれも 「あなたのログインの問題」ではなく「余計なキーが居座っている問題」だ。
キーはどこから来るのか:~/.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」トグル)。意図的にAPIキーで使いたいのでなければ、サブスクを使うよう /status で必ず確認しよう。
3. その他の原因
上書き以外の認証トラブルも、原因はだいたい決まっている。
上書き以外の認証つまづき
/logout → /login で入り直す。claude doctor で点検。c でURLコピー、BROWSER 設定も。
「毎回ログインを求められる」は時計ずれ or キーチェーンを、
「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 → 再起動。シェル設定・.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のプリペイド残高切れ(請求 or サブスク切替) | 残高チャージ、または /login でサブスクへ |
覚え方:401/403 は「あなたが誰か」の問題=認証。usage limit と Credit balance は「量/残高」の問題。429 はレート、529/500 はサーバ側。とくに 余計なAPIキーは「認証失敗」だけでなく「予期せぬ課金」「低Tierでの429」まで引き起こすので、困ったらまず /status なのだ。その他の頻出エラーは エラー集にまとまっている。
6. 再発防止チェックリスト
認証で繰り返しハマらないためのチェックリスト。
① サブスクで使うなら、シェル設定・.env に ANTHROPIC_API_KEY を残さない(前職/別案件の残骸に注意)。② 重要作業の前に /status で有効な資格情報を確認する習慣。③ CI で使うなら、対話ログインではなく claude setup-token の CLAUDE_CODE_OAUTH_TOKEN(または明示的にAPIキー)を使う。④ 「毎回ログイン」が起きるならシステム時計とmacOSキーチェーンを点検。⑤ 組織アカウントはConsoleロールとプラン状態を確認。⑥ 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 で“今どの資格情報か”を確認することだ。
切り分けは ① /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 行も削除を。
Q. サブスク定額のはずなのに、従量で課金されていました。
A. これも ANTHROPIC_API_KEY の上書きが典型的な原因です。APIキーが優先されると、定額のサブスクではなくトークン従量のAPI課金に流れます。/status で「サブスクが有効」と表示されているかを確認し、APIキーが選ばれているなら unset+設定削除で外してください。意図的にAPIキーを使う場合のみ残します。
Q. 起動するたびにログインを求められます。
A. 多いのは ① システム時計のずれ(トークン検証は正確な時刻に依存)と、② macOSキーチェーンのロック/パスワード不一致で資格情報を保存できないケースです。時計を自動同期に設定し、macOSなら claude doctor でキーチェーンを点検してください。それでも直らなければ /logout→/login でクリーンに入り直します。
Q. /status では何が分かりますか?
A. 今どの認証方法・資格情報で動いているか(サブスクのOAuthか、ANTHROPIC_API_KEY か、クラウド資格情報か)が分かります。認証トラブルの大半は「意図しない資格情報が選ばれている」ことなので、まず /status が鉄則です。表示の細部はバージョンで変わるため、最新の挙動は公式で確認してください。
Q. WSL や SSH 越しだとログインのブラウザが開かず失敗します。
A. リモート環境では、ブラウザのリダイレクトがローカルのコールバックに戻れないために起きます。Claude Code が表示するログインコードを貼り付ける、c を押してURLをコピーして手元のブラウザで開く、WSL2なら BROWSER 環境変数を設定する、といった方法で回避できます。コード貼り付け方式を覚えておくと確実です。