Claude Codeのログインがループする原因 — OAuthのstate消失と回避策
Claude Codeの/loginがループし、Missing state parameterが出る原因はサーバー側と見られます。公式のリセット手順とclaude auth statusでの確認、回避策を載せます。
ログインがループするのは、Claude Code本体ではなく、サインインのWebフロー側でstateが失われるためと見られています。手元では/logoutでのリセットか、別経路でコードを貼り戻す方法を試せます。
Claude Codeの/loginでAuthorizeを押した直後に「Sign in again to continue」へ戻され、認可画面とサインイン画面を行き来するだけで完了しない。この不具合が2026年7月以降、複数の環境から報告されています。メール再認証のあとにAuthorizeリクエストが組み直される際、サインインWebフロー側でstateが失われるのが原因と見られています。Anthropic側の投稿も、サーバー側の問題として扱っています。クライアント側の更新で直す種類の不具合ではないと説明されています。Codespacesで「Invalid code」になる場合は別の症状です。
症状: 認可画面と再サインインを行き来し、完了しない
不具合はGitHubのissue #77966として2026年7月16日に報告されました。/loginで「Claude account with subscription」を選ぶと、通常はAuthorizeを押した時点でCLIのコールバックに認可コードが返ります。この不具合では、その手前で再認証が挟まります。
報告されているループの流れ
- 1
認可画面が開く
/loginで「Claude account with subscription」を選ぶと、ブラウザーでOAuthの認可画面が開きます。 - 2
Authorizeを押すと再認証へ飛ぶ
「Sign in again to continue」に転送されます。
- 3
メールでサインインする
Sign in againからメールでのサインインを選び、届いたリンクを開きます。
- 4
完了せず認可画面へ戻る
CLIには何も返らず、再び認可画面が開きます。ここから先は2〜3の繰り返しです。
この流れは毎回失敗するとは限りません。同じ環境で、直後の/loginが成功することもあります。報告者の一人は、失敗した直後に成功する2回の試行を並べて記録しています。
/login
Login interrupted
/login
Login successful失敗時のURLは何が違うのか
issueの報告者は、ループの途中で表示された認可画面のURLを控えています。最初のURLと見比べると、欠けているものが具体的に分かります。
認可URLの違い(issue本文より)
最初のURL
stateとcode_challenge_methodが入っています。redirect_uriはCLIが待ち受けるローカルのlocalhost:PORT/callbackです。
ループ中のURL
stateとcode_challenge_methodがありません。redirect_uriはplatform.claude.comのoauth/code/callbackを指しています。
画面が明示的にエラーを出すこともあり、その場合は次の文言が表示されます。
Invalid OAuth Request
Missing state parameterclaude setup-tokenも同じ失敗をします。8月7日にはmacOSのMaxプラン利用者が、/loginとsetup-tokenの両方でメールリンクを踏んだあと毎回ループすると書き込みました。どちらのコマンドも同じ認可フローを通るため、ローカルの設定だけが原因とは考えにくいと報告者は見ています。
原因: サインインフローがAuthorizeを組み直すときに引数を落とす
2026年8月17日、リポジトリのcollaborator権限を持つ投稿者が、v2.1.233のLinuxで検証した結果を書き込みました。ブラウザーのない端末でも、ブラウザーを開ける環境でも、/loginとclaude setup-tokenの最初の認可URLにはstateとcode_challenge_method=S256が必ず入ったといいます。CLI側でこれらを省いたURLは作れなかったとのことです。
問題は、メール再認証のあとにサインインのWebフローがAuthorizeリクエストを再構築する処理にあると見ています。元のパラメーターがそこで落ちるため、setup-tokenでも同じ失敗になるという見立てです。担当チームへ引き継いだと説明され、クライアントの更新で直す種類の不具合ではないとも書かれています。
redirect_uriがplatform.claude.comに変わる点は、不具合とは別です。ブラウザーを開けない環境では、コードを貼り付ける用のホスト型ページへ切り替わる設計で、そのフォールバックの表れだと説明されています。サーバー側の変更はリリースを待たず反映されるので、同じ投稿は報告者に、いまも再現するか確認を求めました。
最初の報告者は、v2.1.218で素の/loginが通った7月23日の書き込み以降、ループは再現していないと8月23日に書いています(当時の使用バージョンはv2.1.241)。再サインインのメール手順を挟んでも、今は認可が完了するとのことです。一方で、完了までに1分近くかかる場合があることも指摘しており、ループ解消とは別の遅延として挙げられています。
まず試す: 公式のリセット手順
公式のTroubleshoot installation and loginは、原因が分からないログイン失敗への基本対処として、完全にサインアウトしてからやり直す手順を示しています。
/logout/logoutのあとClaude Codeを閉じ、claudeで起動し直して認証を最初からやり直します。認証ドキュメントによると、/logoutは初回起動時のセットアップ状態もリセットします。次の起動ではログインとセットアップが最初から案内されます。
ブラウザーが自動で開かない場合や、開いたブラウザーがログインに使いたいものと違う場合は、cキーでOAuthのURLをクリップボードにコピーします。コピーしたURLを手元のブラウザーに貼り付ければ、SSH先の端末でも、URLが折り返されてクリックできない場合でも続けられます。
原因はサーバー側にあると見られており、実際にリセットで直らなかった報告もあります。8月1日にはmacOS上で、Homebrewのcaskを削除し、~/.claudeと~/.claude.jsonとKeychainのエントリーも消してから、インストーラーで入れ直した利用者がいました。それでも同じループが再現したとのことです。7月31日のUbuntuの報告にも、設定を全削除しても直らなかった例があります。
別経路でログインを通した報告
リセットで直らない場合に、issueのコメント欄で「通った」と報告された手順は、大きく3系統に分かれます。いずれも根本原因を直すものではなく、断続的な失敗をすり抜けた報告です。
コメント欄で効果が報告された回避策
ブラウザーを変える
SafariからChromeに切り替えた、FirefoxからChromeに切り替えた、という報告があります。Safariを既定にしていた環境では、Chromeを既定にしたら通ったとのことです。
プライベートウィンドウで貼り付ける
プライベートウィンドウに認可URLを手動で貼り付け、メールで認証コードを受け取り、そのコードをCLIまたはVS Codeに貼り戻す方法です。FirefoxとVS Code拡張機能の環境などから、複数の報告があります。
スマートフォンで開く
認可URLをスマートフォンのブラウザーに送って開いたところ、CLIへ貼り戻すコードが表示された、というUbuntuの報告があります。
3系統のうち、プライベートウィンドウは使い方に注意点があります。一度通ったウィンドウを閉じずに残し、次の再認証でも同じウィンドウに貼り付けたところ通ったという報告があります。通常のウィンドウで起動し直すとループが再発した、という報告もあるためです。
効果が割れている手順
同じ手順でも、報告者によって結果が分かれているものがあります。
| 手順 | 通ったという報告 | 通らなかったという報告 |
|---|---|---|
claude.aiに先にログインしてから/loginを実行 | 通ったという報告7月17〜18日、v2.1.212とv2.1.214で再現性があったとの報告 | 通らなかったという報告8月1日、ログアウトと再ログインの直後でも「Sign in again」に飛んだ |
| claude.aiをいったんログアウトして入り直し、「最近のログイン」状態をリセット | 通ったという報告提案のみ(7月28日、成否の報告なし) | 通らなかったという報告同上 |
| メールで「Enter verification code」を選ぶ | 通ったという報告6〜7回失敗したあとに完了 | 通らなかったという報告次の起動で同じループが再発 |
「Enter verification code」を選んでも、届くのはコードではなくメールのリンクで、そのリンク先のページに長い認証コードが表示されるという報告があります。リンクを何度も要求した報告者は「We were unable to verify you with this link」というメッセージに当たりました。短時間に多数のマジックリンクを送った影響だと本人は推測しています。
環境別に見た報告
環境によって失敗の出方に差があるという声も複数あります。
| 環境 | 報告された症状 |
|---|---|
| macOS + Safari | 報告された症状認可と再サインインが繰り返される |
| Firefox系(Firefox本体・Zen) | 報告された症状拡張機能とCLIの双方で同じループ |
| Windows(Edge・Chromeシークレット) | 報告された症状Cookie削除やブラウザー変更でも解消しない(8月3日) |
| VS Code拡張機能 | 報告された症状拡張機能から開いたリンクでも同じループ |
| WSL2 | 報告された症状ブラウザーを替えてもループ |
| Linux(Ubuntu) | 報告された症状Firefoxでループ |
Windowsでは8月5日に、VS Code拡張から出したリンクをプライベートウィンドウで開き、メールのリンク先に出るコードを貼り戻して完了した報告があります。WSL2でも同じ報告者が8月3日に、シークレットウィンドウへの手動貼り付けと認証コードで成功しました。Ubuntu+Firefoxでも、プライベートウィンドウで通った報告があります。
報告はplatform:linuxとplatform:intellijのラベルから始まりました。ただしmacOS、Windows、WSL2からも同じ症状が寄せられていて、特定のOSに限った不具合ではなさそうです。
貼り付け型のログインを使う場面
ブラウザーからCLIへのリダイレクトを経由しないログインは、前節の回避策にも共通する要素です。公式ドキュメントは、WSL2・SSH越し・コンテナ内でClaude Codeを動かすときの扱いを書いています。ブラウザーがCLIのローカルコールバックに届かないため、リダイレクトの代わりにログインコードが表示されます。そのコードをPaste code here if promptedに貼り付けます。
貼り付けが効かない場合は、端末の別の貼り付け操作(右クリックやShift+Insertなど)を試します。それでも入力できなければ、標準入力から貼り付けコードを読むclaude auth loginを使います。WSL2でブラウザーが起動しない場合は、BROWSER環境変数にWindows側のブラウザーのパスを設定します。
ただし、ループの最中は貼り付けるコードが発行されないこともあります。macOSの報告では、claude auth loginでも同じループに入り、貼り付け欄が「Invalid code」しか返さなかったとされています。報告者は、ループ中はコードが発行されないためだと見ています。
claude auth statusでログイン状態を確かめる(v2.1.287で確認)
ループの最中に、ログインが完了していないのか、一部だけ書き込まれたのかを切り分ける手段があります。claude auth statusは認証状態をJSONで返し、ログインしていない場合は終了コードが1になります。空の設定ディレクトリで実行した出力は次のとおりです。
{
"loggedIn": false,
"authMethod": "none",
"apiProvider": "firstParty",
"analyticsDisabled": false,
"projectsDirectory": "<設定ディレクトリ>/projects",
"configDirectory": "<設定ディレクトリ>"
}authMethodはnone・claude.ai・oauth_token・api_key・api_key_helper・third_partyのいずれかです。--textを付けると人間が読める形式になり、configDirectory欄はv2.1.268以降で出ます。
claude auth loginには、ログインページにメールアドレスを入れておく--email、SSOを強制する--sso、API従量課金のConsoleアカウントで入る--consoleの各オプションがあります。標準は--claudeai、つまりClaudeサブスクリプションです。
7月25〜26日にmacOSで報告した別の利用者は、ループ中のclaude doctorがSign-in is missing the user:profile scopeと表示したと書いています。この利用者は、一部の資格情報だけが書き込まれている可能性を指摘しています。ただし出力の意味は自分でも十分に分かっていないと付記しています。
それでも直らない場合
公式ドキュメントの「Still stuck」は、既知issueの確認、claude doctor、/feedback、サポート連絡の順に案内しています。ログインループは、アカウント側の問題の例として挙げられています。
/feedbackセッションを起動できるなら、/feedbackでその場から報告できます。起動できない場合は、claude.ai(Consoleアカウントはplatform.claude.com)にサインインし、左下のイニシャルから「Get help」を選びます。
issueのコメントには、サポートの窓口で自動応答しか返らなかったという不満も出ています。issue #77966への追記とサポートへの連絡を並行して行う選択肢があります。
経過: 報告からcollaboratorの投稿まで
| 日付 | バージョン | 内容 |
|---|---|---|
| 2026-07-16 | バージョンv2.1.208 | 内容issue #77966として最初に報告 |
| 2026-07-17〜18 | バージョンv2.1.212、v2.1.214 | 内容断続的に再現。先にclaude.aiへログインしておく手順が報告される |
| 2026-07-21〜23 | バージョンv2.1.216〜v2.1.218 | 内容Firefox・Safariなど複数のブラウザーから報告。v2.1.218で素の/loginが一度成功 |
| 2026-07-25〜08-07 | バージョンv2.1.108〜v2.1.223(多くはv2.1.218〜v2.1.223) | 内容macOS・Windows・Linux・WSL2から報告。サポートの対応への不満も出る |
| 2026-08-17 | バージョンv2.1.233 | 内容collaboratorが原因の見立てを示し、担当チームへ引き継ぎ |
| 2026-08-23 | バージョンv2.1.241 | 内容最初の報告者がループの再発なしを報告。issueは開いたまま |
バージョンが上がるにつれてループが減ったという傾向は、この表からは読み取れません。8月1日にはv2.1.178から212へ上げても再発し、8月5日にはv2.1.108でも起きたと報告されています。新規インストールのv2.1.220でも再発した報告があり、v2.1.218で成功した人がいる一方で、v2.1.220〜223でも失敗が続いています。
似ている別の不具合との切り分け
ログイン関連のエラーにはstateの消失以外にも系統があり、対処が異なります。
保存済みのログインをAPI側が拒否する「OAuth token revoked」の対処は、いったん成立した認証が後から無効化されるケースです。/login自体が完了しない今回の症状とは別物です。ANTHROPIC_PROFILE経由の認証だけで起きる「Anthropic profile login expired」の対処法は、/loginでは直らない点が似ていますが、原因はプロファイル固有の資格情報切れです。managed settingsのforceLoginGatewayUrlとはは、/loginのCloud gateway画面の接続先を固定するmanaged settingsのキーの解説です。同記事が触れる回帰は、CLAUDE_CODE_USE_GATEWAYの単体設定がAPIキーやapiKeyHelperと衝突して全リクエストが弾かれるもので、stateの消失とは別の話です。
ログイン方式そのものを整理したい場合はClaude Codeログイン方法3種の使い分け、アカウント作成から/loginまでの基本の流れはClaudeログイン完全ガイドにあります。Claude Codeの全体像はそちらで確認できます。
まとめ
メールリンクを何度も要求した報告者は、検証エラーに当たっています。同じ経路を繰り返して失敗を重ねるより、認証コードを貼り戻す経路へ切り替えるかどうかが、通る通らないの分かれ目になっています。
参照した一次ソース
この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。