Claude Code 401エラーの原因と解決法|APIキー・OAuth再設定

Claude Code を使っていると突然「401 error」「authentication_error」が表示されて動かなくなることがあります。このエラーは認証に問題があることを示すもので、原因によって対処法が異なります。本記事では、Claude Code で 401 エラーが発生する 5 つの主な原因と、それぞれターミナルで即試せる解決手順を整理します。

Conclusion

Claude Code の 401 エラーは authentication_error で、ANTHROPIC_API_KEY の誤設定または OAuth トークンの期限切れが主因。まず /status で認証方式を確認し、OAuth なら claude auth logoutclaude 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 認証です。この状態でエラーが出ている場合は、次の手順でトークンをリセットします。

再認証の手順:

  1. Claude Code 内で /logout を実行する
  2. claude auth login を実行して再認証を開始する
  3. ブラウザが自動的に開いたら Claude.ai にログインして認証を完了する
  4. ブラウザが開かない場合は 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 エラーになります。

対処手順:

  1. echo $ANTHROPIC_API_KEY でキーを確認する
  2. unset ANTHROPIC_API_KEY で一時的に削除する
  3. /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 providersUnable to locate credentials のようなエラーが出た場合は、AWS 認証情報を更新してください。

aws configure

または IAM ロールを使用している環境では、ロールの有効期限を確認してください。

Vertex AI の確認コマンド:

gcloud auth application-default login

実行後に再認証が完了すると、Vertex AI 経由のリクエストが通るようになります。ANTHROPIC_VERTEX_PROJECT_IDCLOUD_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 認証を使用中 → /logoutclaude auth login で再認証
  • API Key: sk-ant-... → API キーを使用中 → echo $ANTHROPIC_API_KEY でキーを確認 → 無効なら unset または再発行

対処の優先順位:

  1. echo $ANTHROPIC_API_KEY で古い API キーが残っていないかを確認する
  2. キーがある場合は unset ANTHROPIC_API_KEY で削除して OAuth 認証に切り替える
  3. OAuth トークンが期限切れなら /logoutclaude auth login で再認証する
  4. Bedrock/Vertex 利用時はクラウドプロバイダーの認証情報を更新する
  5. macOS では claude doctor で Keychain の状態を診断する

API キーを再発行する手順

API キーが原因で 401 が発生している場合は、Anthropic Console で新しいキーを発行します。

  1. https://console.anthropic.com にログインする
  2. 左メニューから「API Keys」を選択する
  3. 「Create Key」ボタンで新しいキーを発行する
  4. 表示されたキーをコピーする(再表示はできないため必ず保存する)
  5. ターミナルで export ANTHROPIC_API_KEY=sk-ant-xxxxxx を設定する
  6. ~/.zshrc または ~/.bashrc にも追記して永続化する

なお、Claude Pro/Max サブスクリプションを持っているユーザーは、API キーを設定しなくても OAuth 認証だけで Claude Code を使えます。API キーが必要なのは API 使用量を直接 Anthropic に課金する形で利用する場合(主に開発者や企業向け)です。

よくある間違いパターン

401 なのに再インストールを試みる

認証エラーはアプリのバージョン問題ではなく、認証情報の問題です。Claude Code を再インストールしても認証情報は変わらないため解決しません。まず /statusecho $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)、完全なエラー出力を含めると解決が早まります。

Helpful? ♡
Clauder Navi Editorial Team
@clauder_navi

Delivering the latest Claude / Claude Code news and practical insights daily. Learn more about us at About this site.