Claude Code 401エラーの原因と解決法|APIキー・OAuth再設定
Claude Code を使っていると突然「401 error」「authentication_error」が表示されて動かなくなることがあります。このエラーは認証に問題があることを示すもので、原因によって対処法が異なります。本記事では、Claude Code で 401 エラーが発生する 5 つの主な原因と、それぞれターミナルで即試せる解決手順を整理します。
Claude Code の 401 エラーは authentication_error で、ANTHROPIC_API_KEY の誤設定または OAuth トークンの期限切れが主因。まず /status で認証方式を確認し、OAuth なら claude auth logout → claude auth login で再認証、API キーなら unset ANTHROPIC_API_KEY で除去して解決できる。
Contents (13)
401 エラーとは — authentication_error の正体
Claude Code で 401 エラーが発生すると、ターミナルには次のようなメッセージが表示されます。
API Error: 401 {"type":"error","error":{"type":"authentication_error","message":"..."}}
Anthropic の公式エラーリファレンス(https://platform.claude.com/docs/en/api/errors)によると、HTTP 401 は authentication_error を意味し、「API キーに問題がある」状態です。AWS 上の Claude Platform を利用している場合は、AWS 認証情報や SigV4 署名の問題でも同じ 401 が返ります。
Claude Code はターミナルで動作するコーディング支援ツールで、裏側で Anthropic API を経由して Claude にアクセスします。この認証経路で問題が起きると必ず 401 エラーになります。重要なのは「再インストールしても解決しない」という点です。認証情報の問題であって、アプリのバージョン問題ではありません。
原因1: ANTHROPIC_API_KEY の誤設定
最も多い原因は、シェルの設定ファイルに古い API キーが残っていることです。
前職や別プロジェクトで使っていた ANTHROPIC_API_KEY が ~/.zshrc や ~/.bashrc に設定されたままになっていると、Claude Code はサブスクリプションの OAuth 認証の代わりにその API キーを優先して使おうとします。そのキーが無効・期限切れ・別組織のものであれば 401 が返ります。
確認コマンド:
echo $ANTHROPIC_API_KEY
キーが表示された場合は、それが有効かどうかを確認してください。有効かどうか不明な場合は、一時的に削除して Claude Code が OAuth 認証に切り替わるか試します。
一時的に無効化するコマンド:
unset ANTHROPIC_API_KEY
claude
これで正常に動作するようになれば、古い API キーが原因でした。恒久的に解決するには、~/.zshrc や ~/.bashrc から export ANTHROPIC_API_KEY=... の行を削除してシェルを再起動してください。
Windows の場合は、PowerShell プロファイル($PROFILE)とユーザー環境変数の ANTHROPIC_API_KEY も確認してください。
原因2: OAuth トークンの期限切れ
Claude Pro/Max サブスクリプションを使って Claude Code にログインしている場合、OAuth トークンが期限切れになると 401 に近いエラーが発生することがあります。Claude Code 内で /status コマンドを実行すると、現在どの認証方式が使われているかを確認できます。
/status
Logged in as: you@example.com (OAuth) のように表示されていれば OAuth 認証です。この状態でエラーが出ている場合は、次の手順でトークンをリセットします。
再認証の手順:
- Claude Code 内で
/logoutを実行する claude auth loginを実行して再認証を開始する- ブラウザが自動的に開いたら Claude.ai にログインして認証を完了する
- ブラウザが開かない場合は
cキーを押して OAuth URL をコピーし、手動でブラウザに貼り付ける
SSH や WSL2 環境ではブラウザが別のマシンで開く場合があります。その場合はターミナルに表示される URL をコピーし、ローカルのブラウザで開いて認証コードを取得してください。取得したコードをターミナルのプロンプトに貼り付けるとログインが完了します。
原因3: 組織の無効化またはサブスクリプション停止
「This organization has been disabled」というメッセージが含まれる 400/401 エラーが出る場合、環境変数の ANTHROPIC_API_KEY がサブスクリプションの OAuth 認証情報をオーバーライドしている可能性があります。
ANTHROPIC_API_KEY が設定されていると、Claude Code は OAuth 認証の代わりに API キーを使います。そのキーが無効な組織のものであれば 401 か 400 エラーになります。
対処手順:
echo $ANTHROPIC_API_KEYでキーを確認するunset ANTHROPIC_API_KEYで一時的に削除する/statusで認証方式が OAuth に戻ったかを確認する
Claude Pro/Max ユーザーの場合は claude.ai/settings でサブスクリプションが有効かどうかも確認してください。Anthropic Console 経由でアクセスしている開発者の場合、アカウントに「Claude Code」または「Developer」ロールが付与されているかを管理者に確認してもらう必要があります。
原因4: Amazon Bedrock / Vertex AI の認証情報不備
Amazon Bedrock や Google Vertex AI 経由で Claude Code を使う設定をしている場合、クラウドプロバイダーの認証情報が切れると 401 に近い認証エラーが発生します。
Bedrock の確認コマンド:
aws sts get-caller-identity
このコマンドが正常に JSON を返せば AWS 認証は有効です。Could not load credentials from any providers や Unable to locate credentials のようなエラーが出た場合は、AWS 認証情報を更新してください。
aws configure
または IAM ロールを使用している環境では、ロールの有効期限を確認してください。
Vertex AI の確認コマンド:
gcloud auth application-default login
実行後に再認証が完了すると、Vertex AI 経由のリクエストが通るようになります。ANTHROPIC_VERTEX_PROJECT_ID と CLOUD_ML_REGION の環境変数も正しく設定されているかを確認してください。
詳細な設定手順は Anthropic 公式ドキュメントの Amazon Bedrock および Google Vertex AI を参照してください。
原因5: macOS Keychain のロック
macOS では Claude Code の OAuth 認証情報が Keychain に保存されます。Keychain がロックされているか、アカウントパスワードと同期が取れていない場合、Claude Code が認証情報を読み込めずにエラーになることがあります。
診断コマンド:
claude doctor
このコマンドはインストール状態・設定・Keychain アクセスを自動チェックしてレポートを出力します。Keychain 関連の問題が報告された場合は、以下のコマンドで手動ロック解除を試みてください。
security unlock-keychain ~/Library/Keychains/login.keychain-db
それでも改善しない場合は、macOS の「キーチェーンアクセス」アプリを開き、login キーチェーンを選択して「編集 → キーチェーン "login" のパスワードを変更」を実行し、現在のアカウントパスワードで再同期してください。
共通の診断フロー — まず /status で認証方式を確認する
どの原因かわからない場合は、最初に /status で認証方式を確認するのが最も効率的です。
/status
出力結果の読み方:
Logged in as: you@example.com (OAuth)→ OAuth 認証を使用中 →/logout→claude auth loginで再認証API Key: sk-ant-...→ API キーを使用中 →echo $ANTHROPIC_API_KEYでキーを確認 → 無効ならunsetまたは再発行
対処の優先順位:
echo $ANTHROPIC_API_KEYで古い API キーが残っていないかを確認する- キーがある場合は
unset ANTHROPIC_API_KEYで削除して OAuth 認証に切り替える - OAuth トークンが期限切れなら
/logout→claude auth loginで再認証する - Bedrock/Vertex 利用時はクラウドプロバイダーの認証情報を更新する
- macOS では
claude doctorで Keychain の状態を診断する
API キーを再発行する手順
API キーが原因で 401 が発生している場合は、Anthropic Console で新しいキーを発行します。
- https://console.anthropic.com にログインする
- 左メニューから「API Keys」を選択する
- 「Create Key」ボタンで新しいキーを発行する
- 表示されたキーをコピーする(再表示はできないため必ず保存する)
- ターミナルで
export ANTHROPIC_API_KEY=sk-ant-xxxxxxを設定する ~/.zshrcまたは~/.bashrcにも追記して永続化する
なお、Claude Pro/Max サブスクリプションを持っているユーザーは、API キーを設定しなくても OAuth 認証だけで Claude Code を使えます。API キーが必要なのは API 使用量を直接 Anthropic に課金する形で利用する場合(主に開発者や企業向け)です。
よくある間違いパターン
401 なのに再インストールを試みる
認証エラーはアプリのバージョン問題ではなく、認証情報の問題です。Claude Code を再インストールしても認証情報は変わらないため解決しません。まず /status と echo $ANTHROPIC_API_KEY を確認してください。
APIキーを共有する
チームで同じ API キーを共有していると、1 人が誤操作でキーを無効化・ローテートした場合に全員 401 になります。可能な限り個人単位で API キーを発行し、チーム共有は避けるのが安全です。
環境変数の設定を複数箇所に持つ
~/.zshrc、~/.bashrc、~/.profile、さらに VS Code の統合ターミナル設定など、複数の箇所に ANTHROPIC_API_KEY が設定されていると、どこが有効かを把握しにくくなります。1 箇所だけに定義するよう整理しておくことをお勧めします。
それでも解決しない場合
上記のすべての手順を試しても 401 エラーが解決しない場合は、以下を試してください。
claude doctorを実行して自動診断レポートを確認する- Claude Code 内で
/feedbackコマンドを使用して Anthropic に直接報告する - Claude Code の GitHub リポジトリでエラーメッセージを検索し、同様の issue があるか確認する
issue を作成する際は、オペレーティングシステム、Claude Code のバージョン(claude --version)、完全なエラー出力を含めると解決が早まります。