VSCode の拡張機能ホストが落ちて拡張が使えない
「Extension host terminated unexpectedly」が出ると拡張機能が全停止する。
原因は特定拡張のクラッシュ・メモリ不足・互換性問題で、拡張を二分探索して犯人特定するのが最短ルート。
#vscode#extension#crash#extension-host#debug
公開:
要約
拡張機能ホストが落ちる原因の大半は「特定拡張のクラッシュ」。
Developer Tools でログを確認するか、拡張を全無効化して二分探索で犯人を特定する。
回復したら個別に有効化し直して再現性を確認する。
よくある原因
- 特定拡張のクラッシュ: 最近インストール / 更新した拡張が新 VSCode と非互換で落ちる
- メモリ不足: 巨大モノレポや大量タブで Node 側が OOM
- 本体バージョン非対応: 拡張の
engines.vscodeを満たさない VSCode で動かしている - 設定ファイル破損:
settings.jsonのシンタックスエラーや非対応スキーマで起動時にエラー - ストレージ問題:
globalStorage配下のキャッシュ破損
解決策
1. 拡張を二分探索する
コマンドパレットで Extensions: Disable All Installed Extensions を実行して再起動する。
落ちないなら、半数だけ有効化 → 再起動を繰り返して犯人を特定する。
Marketplace の運用は公式の Extension Marketplace ドキュメント を参照。
2. 拡張ホストログを確認する
Help > Toggle Developer Tools を開きコンソールタブを確認する。Output パネルでも Extension Host チャンネルにエラーが出力される。
拡張ホストの仕組みは公式の Extension Host 解説 を読むとログの位置づけが分かる。
3. クリーンプロファイルで起動する
code --disable-extensions --user-data-dir=/tmp/vscode-cleanここで落ちなければユーザーデータ側の問題、落ちるなら本体側の問題と切り分けできる。
4. ストレージをクリアする
OS ごとに以下のディレクトリを バックアップしてから 退避する。
macOS: ~/Library/Application Support/Code/User
Linux: ~/.config/Code/User
Windows: %APPDATA%\Code\UserglobalStorage のキャッシュ破損が原因の場合、退避してから再起動すると初期状態で立ち上がる。
問題が消えたら必要な設定だけ戻していく。