【Google Antigravity】アップデートが完了しない!?ユーザー名の「半角スペース」でインストーラーが爆死する罠とレジストリ完全修復手順
GoogleのAI開発環境「Antigravity」を使っていて、画面右上に「Restart to Update →」の青いボタンが表示されたので、「おっ、新バージョンが来たな!」と意気揚々とクリックしたところ……。
なぜかアップデートが完了せず、古いバージョンのまま再起動して再び「Restart to Update」が表示されるという謎の無限ループに突入してしまいました。
「それなら手動でインストーラーを叩いてみるか」と直接実行してみたところ、無情にも以下のエラーが表示されて停止してしまったのです。
"C:\Users\<スペースの手前>\Uninstall Antigravity.exe"インストールを中止するには中止、再びこのファイルの作成を試みるには再試行、またこのファイルをスキップして続けるには無視を押してください
「……ん? パスが途中で切れてる!?」
そう、自分のWindowsアカウントのユーザー名には「半角スペース」が含まれていたのです。
「半角スペース付きのフォルダーでちゃんと処理できてないって素人かよ!Googleのレベルひどくない!?」と全力でツッコミを入れたくなりましたが、詳しく調査してみると、開発界隈で悪名高い「NSISインストーラーの歴史的トラップ」と、Windowsレジストリの破損が絡み合った深い原因が判明しました。
今回は、このアップデート失敗の真相と、Windowsのユーザー名を危険に晒さずにレジストリを安全に修正して一発で直す方法をまとめました!
1. 遭遇したトラブル:アップデート無限ループと謎のエラー
今回のトラブルは、以下の2段階で発生しました。
① 「Restart to Update」を押しても更新されないループ
Antigravityの画面右上に表示される「Restart to Update →」をクリックすると、アプリはいったん終了します。
しかし、数秒後に立ち上がってきたアプリを確認すると、バージョンは古いまま。そして起動から数十秒後、再び右上に「Restart to Update →」が出現します。何度押してもこのループから抜け出せません。
② 手動でインストーラーを実行したら「初期ファイルの作成エラー」
アプリ内部のログ(%APPDATA%\Antigravity\logs\main.log)を調べると、アップデート用のインストーラーはすでに以下のキャッシュフォルダに正常にダウンロードされていました。
- 保存場所:
%LOCALAPPDATA%\antigravity-updater\pending\Antigravity-x64.exe
「それなら、アプリを終了してこのexeを手動でダブルクリックすればいいのでは?」と思い実行したところ、以下のダイアログが表示されてインストールが停止してしまったのです。
"C:\Users\User\Uninstall Antigravity.exe"
インストールを中止するには中止、
再びこのファイルの作成を試みるには再試行、また
このファイルをスキップして続けるには無視を押してください
(※例:ユーザー名が User Name の場合、C:\Users\User\ で切断される)
存在しないフォルダにアンインストーラーを作ろうとして、Windowsに書き込みを拒否されていました。
2. なぜエラーになったのか?原因の真相
「Googleともあろうものが、なぜこんな初歩的なパス処理ミスを?」と思いましたが、内部構造を追っていくと、2つの要因が重なって起きていたことがわかりました。
要因①:NSISインストーラーの「初見殺し」な変態仕様
Antigravityのインストーラーには、オープンソースで歴史ある「NSIS (Nullsoft Scriptable Install System)」が採用されています。
通常、Windowsのコマンドラインでは「スペースを含むパスはダブルクォート(")で囲む」のが常識です。
ところが、NSISのインストール先指定スイッチ /D= には、「スペースが含まれていても、絶対に引用符で囲んではならない」という極めて特殊で直感に反する仕様が存在します。
開発ツールや自動更新プログラムが親切心で /D="C:\Users\User Name\..." とクォートを付けて呼び出してしまったため、NSISが引用符を認識できず、先頭の半角スペースでパスをブツ切りにしてしまったのです。この仕様はエンジニア界隈でも「NSIS最大の初見殺しトラップ」として悪名高く、大手テック企業でも度々踏み抜かれています。
要因②:切断された不正パスが「レジストリ」に保存されてしまった
さらに厄介だったのが、この切断された不正なパス(C:\Users\User)が、Windowsレジストリのインストール情報にそのまま書き込まれて保存されてしまった点です。
- 記録されていたレジストリキー:
HKCU:\Software\121a0be4-63bd-531e-acf8-fc3924c7e984 - 書き込まれていた値:
InstallLocation = C:\Users\User
NSISインストーラーは、起動時に「既存のインストール場所をレジストリから取得する」仕組みになっています。
そのため、手動でインストーラーをダブルクリックしても、レジストリに保存された「壊れたパス」を自動で読み込んでしまい、何度やっても同じエラーで爆死するという状態に陥っていました。
3. 対処法:ユーザー名変更は絶対NG!レジストリを直すのが正解
「半角スペース付きのユーザー名が原因なら、Windowsのユーザー名を変更すべき?」と思うかもしれませんが、既存のユーザーフォルダ名を変更するのは絶対にやめてください!
直すべきはユーザー名ではなく、汚染されてしまったレジストリのパスだけです!
レジストリ修復コマンド(コピペ一発)
PowerShellを開き、以下のコマンドをそのまま貼り付けて Enter を押してください。
環境変数($env:LOCALAPPDATA)を使用しているため、ユーザー名を書き換える必要なく、どのアカウント環境でもそのまま自動で正しいパスに修復されます。
# Antigravity のレジストリキーを正しいパスに修復
$installPath = "$env:LOCALAPPDATA\Programs\antigravity"
$guid = "121a0be4-63bd-531e-acf8-fc3924c7e984"
# 1. インストール先パスの修正
Set-ItemProperty -Path "HKCU:\Software\$guid" -Name "InstallLocation" -Value $installPath
# 2. アンインストール情報の修正
$uninstallKey = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\$guid"
if (Test-Path $uninstallKey) {
Set-ItemProperty -Path $uninstallKey -Name "InstallLocation" -Value $installPath
Set-ItemProperty -Path $uninstallKey -Name "UninstallString" -Value "`"$installPath\Uninstall Antigravity.exe`" /currentuser"
Set-ItemProperty -Path $uninstallKey -Name "QuietUninstallString" -Value "`"$installPath\Uninstall Antigravity.exe`" /currentuser /S"
Set-ItemProperty -Path $uninstallKey -Name "DisplayIcon" -Value "$installPath\Antigravity.exe,0"
}
Write-Host "Antigravity のレジストリ修復が完了しました!" -ForegroundColor Green
4. 手動アップデートの実行手順
レジストリの修復が完了したら、あとは以下の手順でアップデートを完了させます。
Step 1:エラーダイアログを閉じる
画面に出ている「初期ファイルの作成エラー」ダイアログで 「中止」 をクリックしてインストーラーを終了します。
Step 2:Antigravity を完全に終了する
起動中の Antigravity を「×」ボタンで閉じます。
(※タスクマネージャーで Antigravity や language_server のプロセスが残っていないか確認するとより確実です)
Step 3:PowerShell でレジストリ修復コマンドを実行
上記「3. 対処法」の PowerShell コマンドをコピーし、PowerShell 画面に貼り付けて実行します。
Step 4:インストーラーを実行する
Win + R キーを押し、「ファイル名を指定して実行」ダイアログに以下を入力して Enter を押します。
開いたフォルダー内にある Antigravity-x64.exe をダブルクリックして実行します。
Step 5:アップデート完了!
今度はエラーダイアログが出ることなく、スムーズにインストールが進行し、最新バージョンへとアップデートされます!
5. まとめ&教訓
一見すると「なんでこんな単純なエラーが出るの?」と頭を抱えてしまうトラブルでしたが、掘り下げてみるとインストーラーの深い歴史的仕様が隠れていました。
- NSISインストーラーの
/D=引数にはスペースがあっても引用符を付けてはいけない(歴史的トラップ)。 - 自動更新スクリプトのクォートミスにより、レジストリに壊れたパス(
InstallLocation)が記録されていたのが根本原因。 - Windowsのユーザー名変更はシステム破損のリスクが大きすぎるため絶対に避ける。
- レジストリの該当キーを本来の
$env:LOCALAPPDATA\Programs\antigravityに修復すれば、ユーザー名を変更せず安全・綺麗に解決可能!
同じように「Antigravityのアップデートがループする」「パスが途中で切れたエラーが出る」とお困りの方は、ぜひレジストリの修復を試してみてください!運用が劇的に快適になりますよ!
コメント
0 件のコメント :
コメントを投稿