Claude Codeが更新されないときのWindows 11での切り分け — CLIとデスクトップは別経路
Windows 11でClaude Codeが更新されないとき、まず見るのはCLIかデスクトップアプリか。Check for Updatesで止まり「Deployment is NULL」が出る報告と、経路ごとの更新コマンドをまとめます。
Windows 11で「Claude Codeが更新されない」と感じたら、最初に確かめるのは更新されないのがどれかです。ターミナルで動く claude コマンドと、デスクトップアプリは別の更新経路を持ち、片方を更新してももう片方は変わりません。
GitHubのissue #98249は、デスクトップアプリのメニューから更新を確認しても何も起きないという報告です。報告者の環境では、手動で ClaudeSetup.exe を実行し直したときだけ更新できました。以下では、報告の中身、どちらの経路かの見分け方、経路ごとの更新手段の順にまとめます。
issue #98249で起きていること
issueのタイトルは「Claude doesn't update itself on Windows 11」で、ラベルは bug ・platform:windows ・area:desktop です。起票は2026年9月29日、openのままです。
報告者の症状は次のとおりです。
- 更新できない端末と、更新できる端末の2台がある。問題の端末では一度も自己更新できたことがない(「this never worked」で、退行ではない)
- アプリ登録の掃除、アンインストール、WinGetと
ClaudeSetup.exeでの再インストールを試したが変わらない - File → Help → Check for Updatesを押すと、更新があると表示され、バックグラウンドでダウンロードすると案内される。その後は何も起きず、メニューには前回のインストールで問題があった旨が出る
- 更新を適用する手段は
ClaudeSetup.exeの再実行だけ
main.log には次の行が記録されています。
[updater] Checking for updates
[updater] Found an update, downloading
[updater] Auto-update error: [Error: Deployment is NULL. See http://go.microsoft.com/fwlink/?LinkId=235160 for diagnosing.]Windowsのイベントビューアーの「アプリケーション」には、警告もエラーも出ていません(2026年10月1日のコメント)。
報告者が書いている環境は、Claude Codeのバージョンが2.1.220、OSがWindows、ターミナルがWindows Terminalです。issueは原因を特定していませんし、Anthropic側の回答コメントもありません。エラー文が指す仕組みと今回の症状の因果は、まだ誰も示していません。
まず「どちらの経路か」を切り分ける
Windowsで「Claude Code」と呼ばれるものには、少なくとも2つの実体があります。
更新が走る2つの経路
ターミナルの claude コマンド
ネイティブインストールなら、バックグラウンドで自動更新されます。手動では claude update です。WinGet経由のインストールは自動更新されません。
デスクトップアプリ
WindowsとmacOSでは、起動時に自動で更新を確認します。手動ではHelp → Check for Updatesです。
issue #98249のメニュー操作とログの [updater] 行は、デスクトップアプリ側の更新機構のものです。ターミナルの claude update が失敗しているのとは別の症状になります。
混乱しやすいのは、デスクトップアプリのCodeタブが自前のClaude Codeを持つ点です。Codeタブで動くClaude Codeはアプリがダウンロードして更新するコピーで、ターミナルの claude とはバージョンが異なりえます。どちらか一方を更新しても、もう一方は更新されません。
issueの報告者も、ターミナルで claude update を実行すると「何かは更新される」が、GUIには更新待ちの表示が残り続け、適用に失敗すると書いています。CLIの更新が成功してもアプリの更新問題は直らない、という報告です。
手元のバージョンを経路ごとに確かめる
どの経路がどのバージョンかを、先に並べておきます。PowerShellで次を実行します。
Get-Command claude | Select-Object Source
claude --version
claude doctorGet-Command の出力でCLIの実体がどこにあるかが分かります。ネイティブインストールなら %USERPROFILE%\.local\bin\claude.exe が標準の場所です。WinGetやnpmで入れた場合は別のパスになり、複数の実体が見つかるなら競合インストールを疑います。複数入っているときは、1つに絞るのが推奨です。
デスクトップアプリ側のCodeタブのバージョンは、ローカルセッションで /status と入力し、Claude Codeの行を読みます。アプリ本体のバージョンは、WindowsではHelp → About Claudeで確かめられ、バージョン番号をクリックするとクリップボードにコピーされます。Codeタブのコピーを新しくしたいときは、Help → Check for Updatesを実行したうえで、新しいセッションを開始します。更新前から開いているセッションは、古いコピーのまま動き続けます。issueへのコメントや問い合わせには、この番号を添えると状況が伝わります。CLIとCodeタブが同じ番号なら、更新が止まっているのは別の側です。
経路ごとの更新手段
どの経路で入れたかによって、自動更新の有無も手動コマンドも変わります。
| 入れ方 | 自動更新 | 手動で更新する方法 |
|---|---|---|
| ネイティブインストーラー(CLI) | 自動更新あり | 手動で更新する方法claude update |
| WinGet(CLI) | 自動更新なし | 手動で更新する方法winget upgrade Anthropic.ClaudeCode |
| デスクトップアプリ | 自動更新起動時に確認 | 手動で更新する方法Help → Check for Updates、またはインストーラーの再実行 |
WinGetで入れたCLIは、環境変数 CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE を 1 にするとバックグラウンドで更新を試みます。ただしClaude Codeの実行中は実行ファイルがロックされ、失敗することがあります。その場合は手動コマンドが案内されるので、いったん終了してから winget upgrade Anthropic.ClaudeCode を実行します。更新方法の全体像はClaude Codeアップデートの方法にまとめています。
デスクトップアプリを入れ直す経路も押さえておきます。ダウンロードページ(claude.com/download)のインストーラーを再実行する方法は、issue #98249で実際に更新できた唯一の手段です。企業の端末なら、MSIXパッケージで配るのが標準の導入方法です。MSIX版に固有の症状はClaude Desktop MSIX版でterminalが60秒で閉じる原因と切り分けやClaude Desktopが0x80073CF9でインストールできない原因とpriconfig.xmlに書いています。
自己更新が効かない端末で試す順番
issue #98249は原因未特定なので、以下は報告で効いた手段と、ドキュメントにある確認先を並べた切り分けの順です。
更新できない端末での確認順
- 1
アプリを完全に終了して開き直す
デスクトップアプリは起動時に更新を確認します。ウィンドウを閉じるだけでなく、アプリを完全に終了させてから再起動します。
- 2
Check for Updatesの結果を見る
ダウンロード中のまま進まない、またはメニューに前回のインストールの問題が出るなら、報告と同じ症状です。次の手順へ進みます。
- 3
ログの updater 行を探す
issueでは
main.logに[updater]の行が出ています。Auto-update errorが出ているか、エラー文が何かを控えます。ログの保存場所はissueに書かれていないため、アプリのログフォルダーをエクスプローラーで探します。 - 4
インストーラーを再実行する
報告者が更新できた唯一の方法です。最新のインストーラーをダウンロードして実行します。毎回これが必要になるなら、自己更新は壊れたままです。
- 5
issueに環境を足す
アプリのバージョン、インストール経路(WinGetか、インストーラーか)、
main.logのエラー文を、issue #98249にコメントします。ログの抜粋は公開のissueに載るため、貼る前にファイルパスなど環境の情報が含まれていないかを確かめ、必要なら伏せます。
アプリが起動直後に固まる場合は、ドキュメントでも保留中の更新の確認と、イベントビューアーのWindows Logs → Applicationのクラッシュログ確認が挙がっています。issueの報告者の端末はイベントビューアーに記録がなかったため、更新失敗の記録はアプリのログ側でしか追えません。
更新できる端末との差分を比べる
issue #98249の報告者は、自己更新が通る端末と通らない端末が1台ずつあると書いています。同じ操作で結果が分かれるなら、見るべきは端末側の状態です。
比べる材料は、報告に出てくるものに絞れます。
- どの経路で入れたか(WinGet、インストーラー)。報告者は両方を試しても変わらなかった
- 過去のインストールの残り。メニューに「前回のインストールに問題があった」と出ており、アプリ登録の掃除も試されている
main.logに出るエラー文。更新できる端末のログと並べて、[updater]の行がどこで分かれるかを見る
どれも原因の断定ではなく、サポートやissueに状況を伝えるときの材料です。2台のログを並べてコメントに添えれば、再現に必要な情報として役立ちます。
組織管理の端末で更新が止まる別の原因
個人端末で再現しないのに、会社の端末だけ更新されない場合は、バグではなく管理側の設定を疑う余地があります。デスクトップアプリにはWindowsのグループポリシーがあり、自動更新の制御もその対象に含まれます。ポリシーで更新が止められているなら、ユーザー側のメニュー操作では動きません。
同じ構造は、CLI側の DISABLE_AUTOUPDATER と DISABLE_UPDATES にもあります。後者を設定すると claude update も使えなくなるため、配布を社内の経路に一本化した端末では更新コマンドが効かないのが正常な挙動です。環境変数やmanaged settingsの有無は claude doctor の Auto-updates 行に出ます。disabled (set by env: DISABLE_AUTOUPDATER) のような表示なら、設定による停止です。