コンテンツにスキップ

Claude Code 完全ガイド

Claude Code「API Error: 401」で/loginもできないときの解決手順

対象 / ポイント

対象: Claude Codeで API Error: 401 が出てログインも復旧もできなくなった開発者

ポイント:

  • キャッシュされたログイン状態が古くなると /login 自体が401で失敗することがあり、これは公式Issueでも報告されています1
  • 認証キャッシュを削除してから再ログインするのが、もっとも確実な復旧手順です12
  • APIキー直接指定による回避策もある

エラーの全体像

ある朝、いつもどおり Claude Code を起動する。ターミナルに返ってくるのは赤いエラーメッセージだ。

API Error: 401 {"type":"error","error":{"type":"authentication_error",
"message":"Invalid authentication credentials"}}

Please run /login

指示どおり /login を実行しても、また401。/logout しても401。何をしても401──これは、古い認証キャッシュや期限切れのOAuthログイン状態で起きやすい症状です。

このエラーには複数のバリエーションがある。

  • Invalid authentication credentials
  • Invalid API key
  • OAuth token has expired. Please obtain a new token or refresh your existing token.

メッセージは異なっても、復旧の流れはだいたい同じです。詰まっているローカルの認証状態を消して、ログインをやり直します。


なぜ起きるのか

Claude Codeは複数の認証方式を持っていますが、公式Issueで確認できる典型例は、OAuthログイン状態が古くなって401で詰まるケースです。キャッシュされた認証状態が壊れると、APIリクエスト全体が401になることがあります。

問題は、/login/logout といった認証系コマンドも同じ壊れた状態に巻き込まれる点です1。その結果、CLIの中からは正常系の復旧導線に戻れなくなります。

そこで、CLIの外から認証キャッシュを直接クリアする必要が出てきます。次のセクションで手順を示します。


解決手順

認証キャッシュを手動で削除し、公式のログイン導線で入り直す。 /login 自体が詰まっているときは、これが最も確実な復旧手順です。

Step 1:認証ファイルの手動削除

AnthropicのIAMドキュメントには、Claude Codeが認証情報をどこに保存するかが明記されています2。CLI経由の復旧が効かないときは、その場所を直接クリアします。

Linux / WSL2 / Windows:

rm -f ~/.claude/.credentials.json

macOS:

macOSではKeychainに認証情報が保存される。ターミナルから以下を実行する。

security delete-generic-password -s "claude-code" 2>/dev/null
rm -f ~/.claude/.credentials.json

Step 2:再ログイン

認証キャッシュを消したら、Claude Codeを起動し直して公式のログイン導線に戻します。

claude

起動時に自動でログイン導線が出ない場合は、セッション内で /login を実行します。Quickstartにも、claude 起動後のログインと /login によるアカウント切替が案内されています3

Step 3:動作確認

Claude Codeを起動し、対話セッション内で以下を実行する。

/status

アカウント情報(認証方式、サブスクリプションタイプ)が表示されれば復旧完了だ。


それでも直らない場合

手動削除+再ログインで解決しないケースもある。原因別に3つの対処法を示す。

Claude Codeのバージョンを更新する

古いバージョンでは認証フローやキャッシュ処理にバグが残っている場合があります。

npm install -g @anthropic-ai/claude-code@latest
claude --version

APIキーで直接認証する(OAuth回避)

OAuth認証を完全に迂回し、APIキーを直接指定する方法もある。

  1. Anthropic Console でAPI Keysからキーを発行
  2. 環境変数にセット
export ANTHROPIC_API_KEY="sk-ant-api03-xxxxx"

この方法はClaude.aiログインを使わず、ターミナルCLIの認証だけを切り替える方法です。IAMドキュメントでも、ターミナルセッションではAPIキー認証を使える一方、desktopやremoteではOAuthのみと案内されています2

サービス障害の確認

認証エラーに見えて、実はAnthropicのインフラ障害という場合もある。

障害中は認証系のエンドポイントも影響を受けるため、復旧を待つしかない。


再発防止のためにできること

次に同じ問題が起きたとき、復旧までの時間を短くするための実践です。

  • 認証ファイルのパス(~/.claude/.credentials.json)を覚えておく。次に発生したとき即座に削除できる
  • APIキーをバックアップとして発行しておく。OAuth障害時にすぐ切り替えられる
  • Claude Codeのバージョンを定期的に更新する。認証フローの改善は頻繁にリリースされている

まとめ

Claude Codeの401ループは、認証キャッシュが壊れて /login まで失敗する既知の詰まり方です。Anthropicのドキュメントで保存先が確認でき、公式Issueでもキャッシュ削除が現実的な回復手段として報告されています12

/login がすでに401を返しているなら、認証キャッシュを消してから claude を起動し直し、必要なら /login を実行するのが確実です。CLI用のAPIキーも手元にあると、Claude.aiログインが壊れたときの退避路になります。

関連記事


  1. Claude Code issue #33811/login/logout を含めて 401 で詰む事例。 

  2. Authentication - Claude Code Docs — 認証情報の保存先とサポートされる認証方式。 

  3. Quickstart - Claude Code Docsclaude 起動時のログイン導線と /login によるアカウント切替。