WSL環境でVS Code拡張機能が起動しない問題の完全解決ガイド
はじめに
VS CodeをWSL(Windows Subsystem for Linux)環境で使用していたところ、突然GitHub CopilotとOpenAI Codexが起動しなくなりました。エラーメッセージを見ても原因が分からず、かなり苦労したので、同じ問題に遭遇した方のために詳細な解決方法をまとめます。
この記事で解決できる問題:
- WSL環境でVS Code拡張機能が起動しない
-
Error: spawn ENOENTエラーが発生する -
model gpt-5-codex is not supportedエラーが表示される - 拡張機能のインストールボタンが複数表示される
症状
実際に遭遇したエラーは以下の通りです:
エラー1: Codex拡張機能の起動失敗
command 'chatgpt.openSidebar' not found
VS Codeの通知パネルには以下のエラーが表示されました:

エラー2: Copilot Chatのモデルエラー
{
"error": {
"message": "model gpt-5-codex is not supported in this VS Code version. Please update it to version 1.104.1 or newer",
"code": "model_not_supported_in_version"
}
}
エラー3: ログに記録されたエラー
VS Codeのログ(~/.vscode-server/data/logs/*/exthost1/remoteexthost.log)を確認すると:
[error] Activating extension openai.chatgpt failed due to an error:
[error] Error: Failed to spawn codex mcp process at /mnt/c/Users/yt/.vscode/extensions/openai.chatgpt-0.4.19-win32-x64/bin/linux-x86_64/codex
[error] Error: spawn /mnt/c/Users/yt/.vscode/extensions/openai.chatgpt-0.4.19-win32-x64/bin/linux-x86_64/codex ENOENT
問題の背景
これらのエラーが発生した経緯:
- 以前は正常に動作していた - Copilot、Codexともに問題なく使えていた
- Remote-SSHや複数の拡張機能をインストール - 開発環境を整えるため、様々な拡張機能を追加
- SSH環境を設定 - リモート開発環境を構築
- 突然動かなくなった - 特定の変更を加えた記憶はないのに、気づいたら起動しなくなっていた
まさに「ついさっきまで動いていたのに...」という状況でした。
原因の徹底調査
調査手順
問題を特定するため、以下の順序で調査を行いました:
1. VS Code拡張機能の状態確認
# インストールされている拡張機能のリスト
code --list-extensions --show-versions
# 出力例:
# github.copilot@1.372.0
# github.copilot-chat@0.29.1
# openai.chatgpt@0.4.19
2. エラーログの詳細確認
# 最新のログディレクトリを特定
ls -lt ~/.vscode-server/data/logs/
# Copilot Chatのログを確認
cat ~/.vscode-server/data/logs/20251018T095649/exthost1/GitHub.copilot-chat/GitHub\ Copilot\ Chat.log
ログから以下の重要な情報が得られました:
[info] Logged in as YamauchiTakafumi
[info] Got Copilot token for YamauchiTakafumi
[info] copilot token chat_enabled: true, sku: free_educational_quota
→ 認証自体は成功していることが確認できました。
[error] Request Failed: 400 {"error":{"message":"model gpt-5-codex is not supported in this VS Code version. Please update it to version 1.104.1 or newer"}}
→ VS Codeのバージョンが古いことが判明。
3. VS Codeバージョンの確認
code --version
# 1.102.3
# 488a1f239235055e34e673291fb8d8c810886f81
# x64
現在: 1.102.3
必要: 1.104.1以降
4. 拡張機能のインストール場所を調査
ここが最も重要な発見でした:
# WSL側の拡張機能
ls -la ~/.vscode-server/extensions/ | grep -E "openai|copilot"
# 出力:
# drwxr-xr-x 5 y y 4096 Oct 9 02:52 github.copilot-1.372.0
# drwxr-xr-x 6 y y 4096 Oct 9 02:52 github.copilot-chat-0.29.1
# drwxr-xr-x 6 y y 4096 Oct 9 03:37 openai.chatgpt-0.4.19-linux-x64
# Windows側の拡張機能
ls -la /mnt/c/Users/yt/.vscode/extensions/ | grep -E "openai|copilot"
# 出力:
# drwxrwxrwx 1 y y 4096 Sep 19 10:08 github.copilot-1.372.0
# drwxrwxrwx 1 y y 4096 Aug 3 17:00 github.copilot-chat-0.29.1
# drwxrwxrwx 1 y y 4096 Oct 7 21:51 openai.chatgpt-0.4.19-win32-x64
重大な発見: 同じ拡張機能がWindows側とWSL側の両方にインストールされていました!
5. プラットフォームの確認
# Windows側の拡張機能(問題あり)
cat /mnt/c/Users/yt/.vscode/extensions/openai.chatgpt-0.4.19-win32-x64/package.json | grep targetPlatform
# 出力:
# "targetPlatform": "win32-x64"
# WSL側の拡張機能(正常)
cat ~/.vscode-server/extensions/openai.chatgpt-0.4.19-linux-x64/package.json | grep targetPlatform
# 出力:
# "targetPlatform": "linux-x64"
6. エラーメッセージの再解釈
エラーログをもう一度見ると:
Error: Failed to spawn codex mcp process at
/mnt/c/Users/yt/.vscode/extensions/openai.chatgpt-0.4.19-win32-x64/bin/linux-x86_64/codex
VS CodeはWindows側の拡張機能(/mnt/c/Users/yt/.vscode/extensions/...)を読み込もうとしていますが、そのディレクトリ内でLinux用のバイナリ(bin/linux-x86_64/codex)を探しています。
しかし、Windows版の拡張機能には当然Linux用のバイナリは存在しません:
ls /mnt/c/Users/yt/.vscode/extensions/openai.chatgpt-0.4.19-win32-x64/bin/
# 出力:
# windows-x86_64/ # ← Windowsバイナリのみ存在
根本原因の特定
調査の結果、3つの独立した問題が明らかになりました:
🔴 問題1: 拡張機能のプラットフォーム混在
問題の詳細
-
Windows側:
openai.chatgpt-0.4.19-win32-x64がインストール済み -
WSL側:
openai.chatgpt-0.4.19-linux-x64がインストール済み
VS CodeがWSL環境で実行される際、優先的にWindows側の拡張機能を読み込もうとすることがあります。しかし、Windows版(win32-x64)にはLinux用のバイナリが含まれていないため、起動に失敗します。
なぜこうなったか
VS Codeで拡張機能をインストールする際、以下の2種類のボタンが表示されます:
- "Install" - Windows側にインストール
- "Install in WSL: Ubuntu" - WSL側にインストール

誤って "Install" をクリックすると、WSL環境で作業していてもWindows側にインストールされてしまいます。
影響を受ける拡張機能
以下の拡張機能が重複してインストールされていました:
-
openai.chatgpt(45MB) -
github.copilot(69MB) -
github.copilot-chat(28MB)
合計: 約142MB の無駄な領域を消費
🔴 問題2: VS Codeバージョンの非互換性
問題の詳細
GitHub Copilot Chatが使用しようとしているgpt-5-codexモデルは、VS Code 1.104.1以降でのみサポートされています。
- 現在のバージョン: 1.102.3 (2025年6月リリース)
- 必要なバージョン: 1.104.1以降 (2025年9月11日リリース)
エラーの内容
{
"error": {
"message": "model gpt-5-codex is not supported in this VS Code version. Please update it to version 1.104.1 or newer",
"code": "model_not_supported_in_version"
}
}
このエラーは、拡張機能自体は起動できても、最新のAIモデルを使用できない状態を示しています。
🔴 問題3: 拡張機能の読み込み優先順位
問題の詳細
VS CodeがWSL環境で実行される際、拡張機能を以下の順序で検索します:
- WSL専用の拡張機能パス (
~/.vscode-server/extensions/) - Windows側の拡張機能パス (
/mnt/c/Users/yt/.vscode/extensions/)
しかし、特定の条件下(Remote-WSL拡張機能の設定など)では、Windows側のパスが優先されることがあります。
実際の動作
エラーログから、VS Codeは以下のパスの拡張機能を実行しようとしていました:
/mnt/c/Users/yt/.vscode/extensions/openai.chatgpt-0.4.19-win32-x64/out/extension.js
これはWindows側のパスです。
解決方法
ステップ1: Windows側の重複拡張機能を削除
1-1. 削除前の確認
まず、どの拡張機能が重複しているか確認します:
# Windows側の拡張機能を確認
ls -la /mnt/c/Users/yt/.vscode/extensions/ | grep -E "openai|copilot"
# サイズを確認(オプション)
du -sh /mnt/c/Users/yt/.vscode/extensions/openai.chatgpt-*
du -sh /mnt/c/Users/yt/.vscode/extensions/github.copilot-*
1-2. VS Codeを終了
重要: 削除前に、VS Codeのすべてのウィンドウを閉じてください。
# VS Codeのプロセスが残っていないか確認
ps aux | grep -i "code\|vscode" | grep -v grep
プロセスが残っている場合は、すべて終了させます。
1-3. Windows側の拡張機能を削除
# OpenAI Codex (Windows版) を削除
rm -rf /mnt/c/Users/yt/.vscode/extensions/openai.chatgpt-*-win32-x64
# GitHub Copilot (Windows版) を削除
rm -rf /mnt/c/Users/yt/.vscode/extensions/github.copilot-1.372.0
rm -rf /mnt/c/Users/yt/.vscode/extensions/github.copilot-chat-0.29.1
1-4. 削除の確認
# Windows側に残っていないことを確認
ls /mnt/c/Users/yt/.vscode/extensions/ | grep -E "openai|copilot"
# 何も出力されなければOK
# WSL側は残っていることを確認
code --list-extensions | grep -E "openai|copilot"
# github.copilot@1.372.0
# github.copilot-chat@0.29.1
# openai.chatgpt@0.4.19
ステップ2: VS Codeのアップデート
2-1. 現在のバージョン確認
code --version
# 1.102.3 の場合はアップデートが必要
2-2. アップデート方法
方法1: 自動アップデート(推奨)
- VS Codeを起動
- 左下の歯車アイコンをクリック
- "Check for Updates" を選択
- 自動的に最新版がダウンロード・インストールされます
方法2: 手動ダウンロード
- https://code.visualstudio.com/download にアクセス
- Windows版(User Installer - x64)をダウンロード
- インストーラーを実行
2-3. アップデート後の確認
code --version
# 1.104.0 以降であればOK
ステップ3: VS Code設定の最適化
拡張機能が正しく動作するように、VS Codeの設定を最適化します。
3-1. settings.jsonの編集
WSL側の設定ファイルを編集します:
code ~/.vscode-server/data/User/settings.json
以下の設定を追加:
{
// 既存の設定...
// WSL拡張機能管理の設定
"remote.extensionKind": {
"openai.chatgpt": ["workspace"],
"github.copilot": ["workspace"],
"github.copilot-chat": ["workspace"]
},
// 拡張機能の推奨設定
"extensions.autoCheckUpdates": true,
"extensions.autoUpdate": true,
// WSL環境での動作を明示
"terminal.integrated.defaultProfile.linux": "bash"
}
設定の説明:
-
remote.extensionKind: 拡張機能をWSL側(workspace)で実行することを明示 -
extensions.autoCheckUpdates: 拡張機能の更新を自動チェック -
extensions.autoUpdate: 拡張機能を自動更新
ステップ4: VS Codeの再起動
すべての設定を反映させるため、VS Codeを完全に再起動します:
- すべてのVS Codeウィンドウを閉じる
- WSL環境で再度VS Codeを開く
# WSL環境でVS Codeを開く
code .
ステップ5: 動作確認
5-1. 拡張機能の起動確認
- OpenAI Codexのサイドバーアイコンをクリック
- GitHub Copilot Chatを開く(Ctrl+Shift+P → "Copilot: Open Chat")
5-2. エラーログの確認
# 最新のログを確認
tail -50 ~/.vscode-server/data/logs/$(ls -t ~/.vscode-server/data/logs/ | head -1)/exthost1/remoteexthost.log | grep -i error
エラーが表示されなければ成功です!
5-3. 機能テスト
実際にCopilotやCodexを使って、コード補完や質問応答が動作することを確認します。
再発防止策
同じ問題が再び発生しないように、以下の予防策を実装しました。
1. 自動チェックスクリプトの作成
拡張機能の重複を自動的に検出するスクリプトを作成します。
スクリプトの作成
# スクリプトファイルを作成
nano ~/bin/check-vscode-extensions.sh
以下の内容を貼り付けます:
#!/bin/bash
# VS Code拡張機能の重複チェックスクリプト
# WSL環境で、Windows側とWSL側の拡張機能の競合を検出します
set -e
# カラー出力
RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${BLUE}=== VS Code 拡張機能 重複チェック ===${NC}"
echo ""
# チェック対象の拡張機能リスト
CRITICAL_EXTENSIONS=(
"openai.chatgpt"
"github.copilot"
"github.copilot-chat"
)
# Windows側の拡張機能パス
WINDOWS_EXT_PATH="/mnt/c/Users/$USER/.vscode/extensions"
# WSL側の拡張機能パス
WSL_EXT_PATH="$HOME/.vscode-server/extensions"
# 問題カウンター
ISSUES_FOUND=0
echo -e "${BLUE}チェック1: Windows側の拡張機能を確認${NC}"
echo "パス: $WINDOWS_EXT_PATH"
echo ""
for ext in "${CRITICAL_EXTENSIONS[@]}"; do
# Windows側で該当拡張機能を検索
windows_matches=$(find "$WINDOWS_EXT_PATH" -maxdepth 1 -type d -name "${ext}-*" 2>/dev/null || true)
if [ -n "$windows_matches" ]; then
echo -e "${RED}⚠️ 警告: Windows側に '${ext}' が見つかりました:${NC}"
echo "$windows_matches" | while read -r match; do
echo -e " ${YELLOW}→ $(basename "$match")${NC}"
# プラットフォームをチェック
package_json="$match/package.json"
if [ -f "$package_json" ]; then
platform=$(grep -o '"targetPlatform"[[:space:]]*:[[:space:]]*"[^"]*"' "$package_json" 2>/dev/null | cut -d'"' -f4 || echo "不明")
if [[ "$platform" == "win32"* ]]; then
echo -e " ${RED}プラットフォーム: $platform (WSL環境では動作しません!)${NC}"
else
echo -e " プラットフォーム: $platform"
fi
fi
done
((ISSUES_FOUND++))
echo ""
else
echo -e "${GREEN}✓ '${ext}' はWindows側に見つかりません (OK)${NC}"
fi
done
echo ""
echo -e "${BLUE}チェック2: WSL側の拡張機能を確認${NC}"
echo "パス: $WSL_EXT_PATH"
echo ""
for ext in "${CRITICAL_EXTENSIONS[@]}"; do
# WSL側で該当拡張機能を検索
wsl_matches=$(find "$WSL_EXT_PATH" -maxdepth 1 -type d -name "${ext}-*" 2>/dev/null || true)
if [ -n "$wsl_matches" ]; then
echo -e "${GREEN}✓ '${ext}' がWSL側に見つかりました:${NC}"
echo "$wsl_matches" | while read -r match; do
echo -e " → $(basename "$match")"
# プラットフォームをチェック
package_json="$match/package.json"
if [ -f "$package_json" ]; then
platform=$(grep -o '"targetPlatform"[[:space:]]*:[[:space:]]*"[^"]*"' "$package_json" 2>/dev/null | cut -d'"' -f4 || echo "不明")
if [[ "$platform" == "linux"* ]]; then
echo -e " ${GREEN}プラットフォーム: $platform (OK)${NC}"
else
echo -e " ${YELLOW}プラットフォーム: $platform (警告: Linux用ではありません)${NC}"
fi
fi
done
else
echo -e "${YELLOW}⚠️ '${ext}' がWSL側に見つかりません${NC}"
fi
echo ""
done
echo ""
echo -e "${BLUE}=== サマリー ===${NC}"
if [ $ISSUES_FOUND -gt 0 ]; then
echo -e "${RED}⚠️ ${ISSUES_FOUND}個の問題が見つかりました${NC}"
echo ""
echo -e "${YELLOW}推奨対応:${NC}"
echo "1. Windows側の拡張機能を削除してください"
echo "2. WSL環境では、WSL側の拡張機能のみを使用してください"
echo ""
echo -e "${YELLOW}削除コマンド例:${NC}"
for ext in "${CRITICAL_EXTENSIONS[@]}"; do
windows_matches=$(find "$WINDOWS_EXT_PATH" -maxdepth 1 -type d -name "${ext}-*" 2>/dev/null || true)
if [ -n "$windows_matches" ]; then
echo "$windows_matches" | while read -r match; do
echo " rm -rf \"$match\""
done
fi
done
exit 1
else
echo -e "${GREEN}✓ 問題は見つかりませんでした。すべて正常です!${NC}"
exit 0
fi
スクリプトに実行権限を付与
chmod +x ~/bin/check-vscode-extensions.sh
# 改行コードを修正(必要に応じて)
sed -i 's/\r$//' ~/bin/check-vscode-extensions.sh
スクリプトの実行
~/bin/check-vscode-extensions.sh
実行結果の例(正常な場合):
=== VS Code 拡張機能 重複チェック ===
チェック1: Windows側の拡張機能を確認
パス: /mnt/c/Users/yt/.vscode/extensions
✓ 'openai.chatgpt' はWindows側に見つかりません (OK)
✓ 'github.copilot' はWindows側に見つかりません (OK)
✓ 'github.copilot-chat' はWindows側に見つかりません (OK)
チェック2: WSL側の拡張機能を確認
パス: /home/y/.vscode-server/extensions
✓ 'openai.chatgpt' がWSL側に見つかりました:
→ openai.chatgpt-0.4.19-linux-x64
プラットフォーム: linux-x64 (OK)
✓ 'github.copilot' がWSL側に見つかりました:
→ github.copilot-1.372.0
=== サマリー ===
✓ 問題は見つかりませんでした。すべて正常です!
2. 週次自動チェックの設定
.bashrcに自動チェック機能を追加します。
# .bashrcを編集
nano ~/.bashrc
ファイルの末尾に以下を追加:
# VS Code 拡張機能の重複チェック(週次で実行)
# 最後にチェックした日付を記録するファイル
VSCODE_CHECK_FILE="$HOME/.vscode_ext_check"
# 7日以上経過している場合のみチェック
if [ -f "$HOME/bin/check-vscode-extensions.sh" ]; then
if [ ! -f "$VSCODE_CHECK_FILE" ] || [ $(find "$VSCODE_CHECK_FILE" -mtime +7 2>/dev/null | wc -l) -gt 0 ]; then
# VS Code環境でのみチェックを実行(VSCODE_IPC_HOOK_CLI変数が設定されている場合)
if [ -n "${VSCODE_IPC_HOOK_CLI:-}" ]; then
echo "🔍 VS Code拡張機能の週次チェックを実行中..."
if "$HOME/bin/check-vscode-extensions.sh" > /dev/null 2>&1; then
touch "$VSCODE_CHECK_FILE"
else
echo "⚠️ VS Code拡張機能に問題が検出されました。詳細を確認してください:"
echo " ~/bin/check-vscode-extensions.sh"
fi
fi
fi
fi
これにより、VS Code環境を開いた際に、週に1回自動的にチェックが実行されます。
3. 拡張機能インストールのベストプラクティス
正しいインストール手順
WSL環境で拡張機能をインストールする際は、以下の手順を必ず守ってください:
-
WSL環境であることを確認
- VS Codeの左下に「WSL: Ubuntu」と表示されていることを確認
-
拡張機能を検索
- 拡張機能タブを開く(Ctrl+Shift+X)
- インストールしたい拡張機能を検索
-
正しいボタンをクリック
- ✅ "Install in WSL: Ubuntu" をクリック
- ❌ "Install" だけのボタンはクリックしない

-
インストール後に再起動
- VS Codeを再起動して拡張機能を有効化
Windows側とWSL側の使い分け
| 環境 | インストールする拡張機能 |
|---|---|
| Windows側 | UI/テーマ関連、Remote-WSL、Remote-SSH など |
| WSL側 | 開発ツール(Copilot、Codex、Pylance、ESLintなど) |
基本的に、コードやファイルシステムに直接アクセスする拡張機能は、WSL側にインストールしてください。
まとめ
問題の本質
WSL環境でVS Code拡張機能が動作しない問題の本質は:
- プラットフォームの混在 - Windows版とLinux版の拡張機能が共存
- バージョンの非互換性 - VS Codeが古く、最新機能に対応していない
- 読み込み優先順位 - VS Codeが誤ってWindows側の拡張機能を読み込む
これらの問題は、拡張機能のインストール時に正しいボタンを選択しなかったことが原因でした。
解決のポイント
✅ Windows側の重複拡張機能を完全に削除する
✅ VS Codeを最新版(1.104以降)にアップデートする
✅ VS Code設定で拡張機能の動作を明示する
✅ 自動チェックスクリプトで定期的に監視する
今後の注意点
- 拡張機能をインストールする際は、必ず "Install in WSL" を選択
- 定期的にチェックスクリプトを実行(週次で自動実行)
- VS Codeを常に最新版に保つ
参考情報
便利なコマンド
# 拡張機能のリスト確認
code --list-extensions --show-versions
# VS Codeバージョン確認
code --version
# 重複チェック
~/bin/check-vscode-extensions.sh
# ログの確認
tail -100 ~/.vscode-server/data/logs/$(ls -t ~/.vscode-server/data/logs/ | head -1)/exthost1/remoteexthost.log
関連リンク
おわりに
この問題の解決には、かなりの時間がかかりました。エラーメッセージだけでは原因が特定できず、ログの詳細な調査とファイルシステムの確認が必要でした。
同じ問題に遭遇した方の助けになれば幸いです。また、予防策を実装することで、今後同様の問題が発生するリスクを大幅に減らすことができます。
何か質問や追加の情報があれば、コメントでお知らせください!
この記事が役に立った場合は、ぜひいいね👍をお願いします!
Discussion