T-CREATOR

Claude Code で発生する API Error: 401·{"type":"error", ...} Please run /login の対処法

Claude Code で発生する API Error: 401·{"type":"error", ...} Please run /login の対処法

Claude Code を使っていて突然エラーが表示され、操作ができなくなった経験はありませんか。特に作業中に認証エラーが出ると焦ってしまいますよね。

この記事では、Claude Code で発生する API Error: 401 の原因と、具体的な対処法を初心者の方にもわかりやすく解説します。

背景

Claude Code は Anthropic 社が提供する AI アシスタント「Claude」を CLI(コマンドラインインターフェース)や VSCode 拡張機能として利用できるツールです。 開発作業を効率化するために、コード生成、リファクタリング、デバッグ支援など、様々な場面で活躍してくれます。

Claude Code は API を通じて Claude のサーバーと通信しますが、この通信には認証トークン(OAuth トークン)が必要になります。 認証トークンは一定期間が経過すると有効期限が切れる仕組みになっており、セキュリティを保つために設計されています。

以下の図は Claude Code の基本的な認証フローを示しています。

mermaidflowchart LR
  user["ユーザー"] -->|コマンド実行| cli["Claude Code CLI"]
  cli -->|OAuth Token| auth["認証サーバー"]
  auth -->|トークン検証| api["Claude API"]
  api -->|レスポンス| cli
  cli -->|結果表示| user

ユーザーが Claude Code を操作すると、内部的には OAuth トークンを使って認証サーバーに接続し、Claude API と通信する仕組みです。

課題

作業中に以下のようなエラーメッセージが表示されることがあります。

textAPI Error: 401 {"type":"error","error":{"type":"authentication_error","message":"OAuth token has expired. Please obtain a new token or refresh your existing token."},"request_id":"req_XXXXXXXXXXXXXX"} · Please run /login

エラー情報の詳細

#項目内容
1エラーコード401 Unauthorized
2エラータイプauthentication_error
3エラーメッセージOAuth token has expired. Please obtain a new token or refresh your existing token.
4推奨アクションPlease run ​/​login

このエラーが発生する主な原因は以下の通りです。

  • トークンの有効期限切れ: OAuth トークンには有効期限があり、一定時間が経過すると自動的に失効します
  • 長時間の作業: Claude Code を起動したまま長時間作業を続けると、その間にトークンが期限切れになります
  • セッション管理: セキュリティ上の理由から、トークンは定期的に更新する必要があります

このエラーが発生すると、Claude Code のすべての機能が使えなくなり、作業が中断されてしまいます。 また、エラーメッセージだけでは具体的な対処法がわかりにくく、初めて遭遇した方は戸惑うかもしれません。

認証エラーの発生タイミングを図で示すと以下のようになります。

mermaidstateDiagram-v2
  [*] --> Authenticated: ログイン成功
  Authenticated --> Working: 作業開始
  Working --> Working: 通常操作
  Working --> TokenExpired: 時間経過
  TokenExpired --> ErrorState: API呼び出し
  ErrorState --> Authenticated: /login実行
  ErrorState --> [*]: 作業中断

トークンが期限切れになった状態で API を呼び出すと、エラー状態に遷移してしまいます。

解決策

この問題を解決するには、認証トークンを再取得する必要があります。 Claude Code には再認証を行うための ​/​login コマンドが用意されており、これを実行することでトークンを更新できます。

対処手順

以下の手順で認証エラーを解消できます。

#ステップ操作内容
1コマンド実行​/​login コマンドを入力
2ブラウザ起動Claude.ai Subscriptionからブラウザが開く
3認証完了Anthropic アカウントでログイン
4トークン更新新しいトークンが自動保存される
5作業再開Claude Code が再び利用可能になる

1. ​/​login コマンドの実行

Claude Code のコマンドラインまたは VSCode 拡張機能で以下のコマンドを実行します。

bash/login

このコマンドを実行すると、Claude Code は認証プロセスを開始します。 内部的には OAuth フローが起動され、新しいトークンを取得するための準備が行われます。

2. ブラウザでの認証

コマンド実行後、Claude.ai Subscription を開き、Anthropic の認証ページが表示されます。 もしブラウザが自動で開かない場合は、コマンドラインに表示される URL を手動でコピーしてブラウザに貼り付けてください。

認証ページでは、Anthropic アカウントの認証情報(メールアドレスとパスワード)を入力します。 すでにログイン済みの場合は、自動的に次のステップに進むこともあります。

3. 認証の完了

ブラウザでの認証が成功すると、「認証が完了しました」といったメッセージが表示されます。 この時点で新しい OAuth トークンが発行され、Claude Code に自動的に保存されます。

ブラウザは閉じても問題ありませんし、Claude Code のターミナルには「ログイン成功」といった確認メッセージが表示されます。

4. 作業の再開

認証が完了すると、Claude Code のすべての機能が再び利用可能になります。 エラーが発生する前の状態に戻り、通常通りコマンドを実行できるようになります。

解決プロセスの全体フローは以下の通りです。

mermaidflowchart TB
  error["API Error: 401<br/>認証エラー発生"] --> command["ステップ1:<br/>/login コマンド実行"]
  command --> browser["ステップ2:<br/>ブラウザ自動起動"]
  browser --> auth["ステップ3:<br/>Anthropic アカウントで認証"]
  auth --> token["ステップ4:<br/>新トークン自動保存"]
  token --> resume["ステップ5:<br/>作業再開可能"]
  resume --> success["認証エラー解消"]

このフローに従えば、数分以内にエラーを解消し、作業を再開できます。

具体例

実際の作業シナリオを通じて、エラー発生から解決までの流れを見ていきましょう。

シナリオ: コード生成中にエラーが発生

あなたが Claude Code を使って TypeScript のコードを生成している最中に、突然以下のエラーが表示されたとします。

textAPI Error: 401 {"type":"error","error":{"type":"authentication_error","message":"OAuth token has expired. Please obtain a new token or refresh your existing token."},"request_id":"req_011CU9rgP8YZSnUSUJobQ3ro"} · Please run /login

対処の実行例

ステップ 1: エラーの確認

まず、エラーメッセージを確認します。 401 というステータスコードと authentication_error というタイプから、認証の問題だとわかります。 メッセージには「OAuth token has expired(OAuth トークンの有効期限が切れました)」と明記されており、原因が明確ですね。

ステップ 2: ​/​login コマンドの実行

Claude Code のターミナルまたはコマンドパレットで ​/​login と入力します。

bash/login

コマンドを実行すると、以下のような出力が表示されます。

textOpening browser for authentication...
Please complete the login process in your browser.

このメッセージが表示されたら、ブラウザが自動的に開くのを待ちます。

ステップ 3: ブラウザでの認証操作

ブラウザが開き、Anthropic の認証ページが表示されます。 ページには以下のような要素が含まれています。

  • Anthropic のロゴ
  • 「Sign in to Claude」といったタイトル
  • メールアドレス入力欄
  • パスワード入力欄(またはソーシャルログインボタン)

すでにログイン済みの場合は、「Authorize Claude Code」といった確認ページが直接表示されることもあります。 その場合は「Allow」や「承認」ボタンをクリックするだけで完了します。

ステップ 4: 認証完了の確認

認証が成功すると、ブラウザには以下のようなメッセージが表示されます。

textAuthentication successful!
You can now close this window and return to Claude Code.

同時に、Claude Code のターミナルにも以下のような確認メッセージが表示されます。

text✓ Login successful!
You can now use Claude Code.

ステップ 5: 作業の再開

認証が完了したので、先ほど中断された作業を再開します。 同じコマンドを再実行すれば、今度はエラーなく処理が完了します。

このシナリオ全体の流れを図にすると以下のようになります。

mermaidsequenceDiagram
  participant U as ユーザー
  participant C as Claude Code
  participant A as 認証サーバー
  participant API as Claude API

  U->>C: コード生成リクエスト
  C->>API: API呼び出し(期限切れトークン)
  API->>C: 401 エラー返却
  C->>U: エラーメッセージ表示

  Note over U,C: --- ここから対処 ---

  U->>C: /login コマンド実行
  C->>A: 認証フロー開始
  A->>U: ブラウザで認証ページ表示
  U->>A: 認証情報入力
  A->>C: 新トークン発行
  C->>U: ログイン成功通知

  Note over U,C: --- 作業再開 ---

  U->>C: 同じリクエスト再実行
  C->>API: API呼び出し(新トークン)
  API->>C: 正常レスポンス
  C->>U: コード生成完了

このシーケンス図を見ると、エラー発生から解決、作業再開までの一連の流れが理解できますね。

トラブルシューティング: ブラウザが開かない場合

まれに、​/​login コマンドを実行してもブラウザが自動で開かないことがあります。 その場合は、ターミナルに表示される URL を手動でコピーしてブラウザに貼り付けてください。

textOpening browser for authentication...
If your browser doesn't open automatically, please visit:
https://claude.ai/oauth/authorize?client_id=xxxxx&redirect_uri=xxxxx

この URL をコピーし、任意のブラウザのアドレスバーに貼り付けてアクセスすれば、認証ページが開きます。

予防策: 定期的な再認証

長時間の作業が予想される場合は、作業開始時や休憩後に ​/​login コマンドを実行しておくと、作業中のエラーを予防できます。 トークンの有効期限は数時間から数日程度ですので、毎日 Claude Code を使う方は、作業開始時の習慣にするとよいでしょう。

まとめ

Claude Code で発生する API Error: 401 は、OAuth トークンの有効期限切れが原因です。 このエラーは ​/​login コマンドを実行し、ブラウザで再認証することで簡単に解決できます。

解決手順のまとめ

#アクション所要時間
1​/​login コマンド実行数秒
2ブラウザで認証1〜2 分
3作業再開すぐ

エラーが発生しても焦らず、この手順に従えば数分で作業を再開できます。 また、長時間作業する場合は定期的に ​/​login を実行することで、エラーを未然に防ぐことができますね。

Claude Code を快適に使い続けるために、この対処法を覚えておくと安心です。

関連リンク