development·

Claude Code「Failed to refresh OAuth token: another Claude Code process is refreshing it」の意味と対処

Claude Code の「Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh」「Could not refresh your login because another Claude Code process is refreshing it」は、ログインの更新を別の Claude Code が握ったまま進まないという意味です。待つ・他の Claude Code を閉じる・/login の順で直ります。直らないときの確認点も一次情報で解説します。

Claude Code「Failed to refresh OAuth token: another Claude Code process is refreshing it」の意味と対処
Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again
Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login

どちらも、期限が来たログインを更新しようとしたところ、同じパソコンの別の Claude Code がその更新の順番を握っていて(または握ったまま終了していて)、待っても更新が進まなかったという意味です。ログインが拒否されたわけでも、アカウントに問題があるわけでもありません。1分ほど待って再実行し、続くなら他の Claude Code を閉じ、それでも出るなら /login でサインインし直せば直ります。 /login はこの順番待ちを待たずに新しいログインを作るためです。

1つ目は claude -p(非対話実行)や Agent SDK で、2つ目は対話モードのターミナルで表示される文面です。

本記事の情報について:2026年10月7日時点の公式ドキュメント(Error reference の「Could not refresh your login because another Claude Code process is refreshing it」、Troubleshoot installation and login)、CHANGELOG(最新は v2.1.292)、GitHub の利用者報告と、手元の Claude Code v2.1.287 に含まれる文言にもとづいています。公式の記載と利用者の報告は書き分けています。エラーを意図的に起こして再現したものではありません。

この記事を読むとわかること

  • 「another Claude Code process is refreshing it」が何を待っていて、なぜ止まるのか
  • すぐ直す3つの手順(待つ・他の Claude Code を閉じる・/login)
  • 何度も出るとき、特に claude -p を並べて動かしているときの確認点
  • 「Login expired」「OAuth token revoked」など、似たログインのエラーとの違い

意味:ログインの更新が「順番待ち」で止まった状態

/login で claude.ai のアカウントにサインインすると、Claude Code はそのログインを保存し、期限が近づくと裏で自動的に更新します。同じパソコンでターミナルを何枚も開いたり、VS Code 拡張と claude -p のスクリプトを同時に動かしたりすると、複数の Claude Code が1つの保存済みログインを共有します。

このとき全員が一斉に更新すると、ログインそのものが無効になることがあります。公式ドキュメントによると、v2.1.211 より前はスリープから復帰したときに2つのセッションが同じ情報で同時に更新し、保存済みのログインが無効になって全セッションで再ログインを求められることがありました(Troubleshoot installation and login の「Not logged in or token expired」)。現在は一度に1つのプロセスだけが更新するよう、順番を取り合う仕組み(公式の英語表記では refresh lock)になっています。

Error reference によると、このエラーは次の状況で出ます。

  • 保存していた claude.ai のログインの期限が切れていて、更新が必要だった
  • 同じパソコンの別の Claude Code が更新の順番を握っていた、または握ったまま終了して順番が残っていた
  • このセッションが待っている間に更新が進まなかった

Claude Code はこの時点でリクエストを送らずに止めます。公式ドキュメントは、このメッセージはログインが拒否されたという意味ではないと明記しています。

複数の Claude Code が1つの保存済みログインを共有している構造図。ターミナル、VS Code 拡張、claude -p のスクリプトが、更新の順番待ち(refresh lock)を通って保存済みログインを更新する。順番を握っているプロセスが更新を終えれば、待っていたセッションは新しいログインで続行できる。順番を握ったまま終了した場合は順番が残り、待っている間に更新が進まない。/login は順番待ちを通らずに新しいログインを作る。

順番待ちの先で起きることは、図のとおり次の3通りです。

  • 順番を握ったプロセスが更新を終える:待っていたセッションは更新後のログインを使って続けられます。1分待って再実行すれば直るのはこのケースです
  • 順番を握ったまま終了した:更新の途中でプロセスが落ちたり強制終了されたりすると、順番だけが残ります。メッセージの or exited mid-refresh はこのケースです。CHANGELOG によると、v2.1.282 以降はこの残った順番で1分ほど失敗し続ける問題が修正されています
  • /login でサインインし直す:公式ドキュメントによると、サインインし直す操作は順番待ちを待ちません

表示のされ方

使い方表示される文面
対話モードCould not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login
非対話実行(claude -p)・Agent SDKFailed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again(エラーコードは server_error)

claude -p 側のエラーコードは、認証の失敗(authentication_failed)ではなく server_error です。CHANGELOG によると、v2.1.248 より前は、別のプロセスが順番を握っている間に期限が切れるとログイン画面に戻されていました。v2.1.248 から、再試行できるエラーとして返すように変わっています。

このメッセージが出ない人

公式ドキュメントによると、API キー、CLAUDE_CODE_OAUTH_TOKEN、Amazon Bedrock などのクラウドプロバイダーで認証しているセッションは、保存済みのログインを使わないため、このメッセージは出ません。

対処法

公式ドキュメントの手順は次の3つです。上から順に試します。

1. 1分ほど待って、もう一度実行する

順番を握っているプロセスが更新を終えれば、このセッションも更新後のログインを使えます。メッセージのとおり、まず1分ほど待って同じ操作をやり直します。claude -p のスクリプトなら、少し間をおいて再実行するだけで通ることがあります。

2. 続くなら、他の Claude Code を閉じてから再実行する

同じメッセージが戻る場合は、同じパソコンで動いている他の Claude Code(別のターミナルのセッション、VS Code 拡張、バックグラウンドで動かしている claude -p のスクリプトなど)を終了してから、もう一度実行します。

どれが動いているか分からないときは、OS の機能で確認できます。macOS や Linux ならターミナルで次のように実行すると、claude を含むプロセスが一覧で表示されます(Claude のデスクトップアプリのプロセスも名前に claude を含むため一緒に表示されます)。Windows ではタスクマネージャーで確認します。

pgrep -fl claude

3. 他の Claude Code が動いていないのに出るなら /login

他の Claude Code を閉じても出る場合は、順番だけが残っている可能性があります。対話モードで次を実行し、サインインし直します。公式ドキュメントによると、サインインし直す操作は順番待ちを待ちません。

/login

claude -p や SDK で出ている場合は、同じパソコン・同じユーザー・同じ環境で一度 claude を対話モードで起動して /login を済ませてから、元のコマンドを実行し直します。

補足(公式の記載ではありません):#95236 の報告者による解析では、更新の順番待ちの印は設定ディレクトリの中に作られます。CLAUDE_CONFIG_DIR を設定しているなら、/login も同じ値の環境で行ってください。

何度も出るときの確認点

Claude Code のバージョン

この順番待ちの仕組みには、最近のバージョンで修正が続いています(いずれも CHANGELOG の記載)。

バージョン修正内容
v2.1.248順番を握られている間に期限が切れたとき、ログイン画面に戻さず、再試行できるエラーを返すように変更
v2.1.282順番を握っていたプロセスが更新の途中で閉じられたり強制終了されたりしたあと、最大1分ほどこのエラーでリクエストが失敗し続ける問題を修正
v2.1.285落ちたプロセスが残した順番を、2つのセッションが同時に引き取ろうとしたときにまれに認証が失敗する問題を修正

古いバージョンで繰り返し出るなら、まず claude update で最新にします。2026年10月7日時点の最新は v2.1.292 です。

claude -p を同時にたくさん動かしていないか

スクリプトから claude -p を並列で大量に起動していると、ログインの期限が来たときに全員が同じ順番を待つことになります。公式ドキュメントのとおり、API キーや CLAUDE_CODE_OAUTH_TOKEN で認証しているセッションはこの仕組みを使わないため、このメッセージは出ません。

人がブラウザでサインインし直せない自動実行(CI・cron・夜間バッチ)では、claude setup-token で発行する長期トークンを CLAUDE_CODE_OAUTH_TOKEN に設定するか、ANTHROPIC_API_KEY を使うのが確実です。設定方法と注意点は「Not logged in」の対処法で解説しています。

パソコンの時計が大きくずれていないか

公式ドキュメントは、ログインを頻繁に求められる場合はシステムの時計が正確かを確認するよう案内しています(Troubleshoot installation and login)。後述のとおり、時計が大きく巻き戻ったあとにこのエラーが続いたという利用者の報告もあります。OS の時刻の自動設定をオンにしておきます。

公式には未確認の報告

GitHub には次のような利用者の報告があります(2026年10月7日時点でいずれもオープン)。公式ドキュメントでは確認できていない内容なので、参考情報として扱ってください。

  • Windows で claude -p を並列実行していたところ、すべての呼び出しがこのエラーで失敗し、3分待っても直らなかった。ホームフォルダの .claude の中に空の .oauth_refresh.lock フォルダが残っており、これを手で消すと直ったという報告(anthropics/claude-code #95236。v2.1.272 で発生、報告者は v2.1.274 でも同じ作りと確認)
  • 起動直後に OS が時計を約4時間巻き戻す環境で、更新中に作られた ~/.claude/.oauth_refresh.lock が「未来の時刻」のまま残り、他の Claude Code が動いていないのにこのエラーが続いた。同じく手で消すと直ったという報告(#95739、v2.1.267)

どちらも、前述の v2.1.282・v2.1.285 の修正より前のバージョンでの報告です。修正後のバージョンで同じ現象が起きなくなったかは報告上確認できず、特に #95739 の「未来の時刻」の印が修正の対象に含まれるかは公式に記載がありません。

公式の手順にこのフォルダを消す方法は書かれていません。公式ドキュメントは、他の Claude Code が動いていないのにこのメッセージが続く場合は /login するよう案内しています。まず /login を試し、それでも直らないときに限って、すべての Claude Code を終了してから残ったフォルダを確認する、という順番にしてください。

似ているが別のエラー

メッセージ何が起きているか対処
Login expired · Please run /login / Failed to authenticate: OAuth session expired and could not be refreshed更新を試みたが、認証サービスに拒否された。保存済みのログインは消える/login(「Login expired」の意味と対処法)
OAuth token revoked · Please run /login / OAuth token has expired送ったトークンを API が拒否した/login。同じセッションで繰り返すなら /logout → /login
Not logged in · Please run /login保存済みのログインがもともと見つからない「Not logged in」の対処法
Authentication service was unavailable / Temporarily unable to authenticate. Please retry.デスクトップアプリや claude.ai で、Anthropic 側の認証サービスが一時的に応答しなかったステータスページを確認して待つ(認証の一時障害の対処法)

見分けるポイントは、拒否されたのか(Login expired・OAuth token revoked)、まだ順番を待っているだけなのか(本記事のエラー)です。本記事のエラーは拒否ではないため、待つか他の Claude Code を閉じれば /login なしで戻ることがあります。そのほかのエラーはClaude Code トラブルシューティング完全ガイドから逆引きできます。

よくある質問

まとめ

  • 「another Claude Code process is refreshing it」は、ログインの更新が別の Claude Code との順番待ちで進まなかった状態。ログインが拒否されたわけではない
  • 1分待って再実行 → 他の Claude Code を閉じる → /login、の順で直る
  • 繰り返すなら claude update で最新版にする(v2.1.282・v2.1.285 で関連する修正あり)
  • claude -p を並列で動かすなら、CLAUDE_CODE_OAUTH_TOKEN(claude setup-token)か ANTHROPIC_API_KEY で認証する

参考:

Claude Code をチームや自社の開発に広げるなら

Claude Code を個人の開発環境で使っていて、手元で解決できたなら、ここまでで十分です。

チームへの展開や、開発そのものの依頼を検討している立場の方は、次の窓口から相談できます。

初回の壁打ち(30分)は無料です。

関連記事