

CursorでError loading webviewが出たけど再起動で直った
この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。
Cursorで画像ファイルを開いたところ、画像が表示されずに次のエラーが出た。
Error loading webview: Error: Could not register service worker: InvalidStateError: Failed to register a ServiceWorker: The document is in an invalid state..結論を先に書くと、Cursorを再起動したら直った。大した話ではないけれど、同じエラーが出たときにすぐ対処できるよう書いておく。
何が起きたか
画像ファイルを開いたら、画像が表示されずにエラーが出た。テキストファイルは普通に開けていた。
CursorはVS Codeのフォークである。VS Codeでは、画像のプレビューは組み込み拡張機能(Media Preview)のカスタムエディタで表示されていて、このカスタムエディタはWebviewの上で動いている。だから、テキストエディタは問題なく使えるのに、画像を開いたときだけエラーになるという症状になる。
Webviewは読み込みの途中でService Workerを登録する。今回はその登録が InvalidStateError で失敗して、画像が表示されなかった。同じ仕組みを使うMarkdownプレビューや拡張機能の画面でも、同じエラーが出る可能性がある(今回は未確認)。
The document is in an invalid state は、Service Workerを登録しようとしたドキュメントが、登録できない状態になっているという意味だ。
原因
今回、原因の特定まではしていない。VS Code系のエディタでこのエラーが出るケースとして、よく挙げられる原因は次の2つだ。
- 古いプロセスが残っていて、Webviewの状態が不整合になっている
- Service Workerのキャッシュが壊れている
今回は再起動だけで直ったので、前者だった可能性が高いと考えている。ただし未検証の推測である。
対処方法
軽い対処から順に試すとよい。
flowchart TD
A[画像を開くと Error loading webview が出る] --> B[Cursorを完全に終了して再起動]
B -->|直った| Z[完了]
B -->|直らない| C[Service Worker などのキャッシュを削除]
C -->|直った| Z
C -->|直らない| D[--disable-gpu で起動して切り分け]
D --> E[特定の拡張だけで出るなら、その拡張を無効化]
1. Cursorを完全に終了して再起動する
今回はこれで直った。ここで大事なのは、ウィンドウを閉じるだけで済ませないことだ。プロセスが残っていると、起動し直しても同じ状態のままになる。
pkill -f Cursor2. キャッシュを削除する
再起動で直らない場合は、Cursorを終了してからキャッシュ系のフォルダを削除する。削除するのはキャッシュだけなので、設定や拡張機能は残る。
macOSの場合:
cd ~/Library/Application\ Support/Cursorrm -rf "Service Worker" Cache CachedData "Code Cache" GPUCacheLinuxの場合:
cd ~/.config/Cursorrm -rf "Service Worker" Cache CachedData "Code Cache" GPUCacheWindowsの場合は、%APPDATA%\Cursor の中にある同じ名前のフォルダを削除する。
今回はこの手順まで進まなかったので、実際には試していない。
3. それでも直らない場合
- 起動時に
--disable-gpuを付けて、GPU周りが原因かどうかを切り分ける - 特定の拡張機能のWebviewだけでエラーが出るなら、その拡張機能を無効化して様子を見る
- コマンドパレットから
Developer: Reload Windowを実行する