Claude Code VS Code拡張がOneDrive配下で起動しないときの対処
WindowsのVS Code拡張が、OneDrive同期フォルダのワークスペースでclaudeを起動できず、musl/glibcのエラーを出す報告です。ログの読み方と、フォルダを移す切り分けを示します。
Claude Code VS Code拡張がOneDrive配下で起動しないときの対処
WindowsでOneDrive配下のフォルダをVS Codeで開くと、Claude Codeの拡張が claude.exe を起動できず、Linux向けのはずのmuslとglibcの説明が出ることがあります。GitHubのissueでは、同じバイナリがOneDriveの外のフォルダでは動き、変わるのはワークスペースの場所だけだと報告されています。確かな回避策は、プロジェクトをOneDriveの外へ移して開くことです。
原因は特定されていません。ここでは、ログの何を見れば同じ現象と言えるのか、どこまで切り分ければ報告や相談に使えるのかを示します。
何が起きているのか
報告されている症状は次のとおりです。
| 項目 | 内容 |
|---|---|
| OS | 内容Windows 10/11 |
| 拡張 | 内容anthropic.claude-code-2.1.269-win32-x64 |
| ワークスペース | 内容OneDriveにリダイレクトされたデスクトップ配下のフォルダ |
| 状態 | 内容同期済みで、クラウド専用のプレースホルダーではない |
| 結果 | 内容パネルを開いても、プロンプトを送っても起動に失敗する |
報告者のデスクトップはOneDriveに移されていました。新しいWindows環境でよくある初期設定だと、報告者自身が書いています。
同じ構成でも、C:\Projects\test のようなOneDriveの外のフォルダなら問題なく動きます。拡張に同梱されたバイナリでも、単体でインストールした %USERPROFILE%\.local\bin\claude.exe でも結果は同じです。共通しているのは、起動時の作業ディレクトリがOneDriveの同期フォルダの中にあることだけです。
ログで同じ現象かを見分ける
VS Codeのコマンドパレットから「Claude Code: Show Logs」を開くと、拡張のデバッグログが出ます。報告されたログは、次の順に並んでいます(パスは伏せてあります)。
[error] claude auth status spawn failed: Error: spawn C:\Users\<user>\.local\bin\claude.exe ENOENT
[info] Spawning Claude with SDK query function - cwd: c:\Users\<user>\OneDrive\Desktop\<project>, ...
[error] Error spawning Claude ...: ReferenceError: Claude Code native binary at C:\Users\<user>\.local\bin\claude.exe exists but failed to launch. This usually means the binary does not match this system's libc — e.g. spawning a musl-linked binary on a glibc Linux host fails ...見るべき点は3つあります。
- 先に出る
spawn ... ENOENTが、実際のOSエラーです cwd:の行のパスにOneDriveが含まれています- 最後のmusl/glibcの説明は、起動に失敗したときに出る汎用の文面です
ENOENT は「指定したパスが見つからない」を表します。ところが同じファイルを端末から直接実行すると動くため、ファイルがないわけではありません。報告者はこの食い違いを、エラー表示の問題として指摘しています。
エラーが「Claude Code process exited with code N」の形で出ているときは、画面に出る「View output logs」のリンクからも同じログに行けます。ここで見るのは、プロセスが動き出したあとに終了したのか、そもそも起動できなかったのかの違いです。Windowsでは、ターンの完了直後に終了コード 4294967295 で終わることがあり、v2.1.273以降の拡張はこの終了を静かに処理して、次のメッセージで会話を再開します。つまり、このコードだけを見て今回の現象と決めつけることはできません。起動前に spawn ... ENOENT が出ているかどうかが、判断の分かれ目になります。
落とし穴
musl/glibcの文面はWindowsでは当てになりません
この文面はLinuxのダイナミックローダーの話です。Windowsで読んでも、バイナリの入れ替えやlibcの調査には進まないでください。先に出ている ENOENT の行と、cwd: のパスを見ます。
同じ文面でも別の原因があるもの
「exists but failed to launch」の文面は、OneDriveと無関係な場面でも出ます。見た目が似ているので、環境で見分けます。
| 環境と症状 | 疑う原因 | 読む記事 |
|---|---|---|
Linuxで libstdc++.so.6 などが見つからない | 疑う原因muslとglibcのバイナリ不一致 | 読む記事libstdc++.so.6エラーの原因と対処 |
| Agent SDKがLinuxでmusl版を選ぶ | 疑う原因SDK側のバイナリ選択 | 読む記事Agent SDKがmusl版を優先するバグ |
| 起動直後にSIGSEGVで落ちる | 疑う原因glibc環境との組み合わせ | 読む記事起動直後のSIGSEGVの原因と対処 |
| WSLでパネルが空白になる | 疑う原因VS Codeのwebview配信の不具合 | 読む記事WSLで真っ白になる原因と回避策 |
| PowerShellの統合ターミナルで「Could not locate the Claude CLI on PATH」と出る | 疑う原因claude がPATHに無い、またはPATH変更後にVS Codeを再起動していない | 読む記事公式エラー解説の該当項(where.exe claude で確かめ、PATHはユーザー環境変数に置く) |
| 「The connection to Claude Code ended before this message completed」と出る | 疑う原因claude プロセスが応答の前に終了した | 読む記事公式エラー解説の該当項(メッセージを再送し、繰り返すなら端末で claude を実行) |
Windowsで ENOENT の後にmusl/glibcの文面が出て、cwd がOneDrive配下 | 疑う原因この記事の現象 | 読む記事以降の節 |
切り分けと回避の手順
作業は軽い順に並べると、次のとおりです。
OneDrive配下で起動しないときの切り分け
- 1
ログで条件を確かめる
「Claude Code: Show Logs」で、
ENOENTの行とcwd:の行を見ます。cwdがOneDriveの中なら、報告と同じ条件です。 - 2
OneDriveの外のフォルダで試す
C:\Projects\testのような、OneDriveの管理外に空のフォルダを作って、そこをVS Codeで開きます。ここで起動すれば、バイナリやログインは正常で、場所だけが原因と言えます。 - 3
プロジェクトをOneDriveの外へ移す
Gitで管理しているなら、OneDriveの外に入れ直すのが簡単です。
- 4
端末でも同じか確かめる
同じフォルダで
claudeを端末から起動し、本当のエラーが出るかを見ます。
移す作業は、PowerShellで次のように行えます。
git clone <リポジトリのURL> C:\Projects\my-app
code C:\Projects\my-appGitを使っていないフォルダは、Copy-Item で丸ごとコピーしてから、コピー先を開きます。元のフォルダは、動作を確かめるまで消さずに残します。
Copy-Item "$env:USERPROFILE\OneDrive\Desktop\my-app" C:\Projects\my-app -Recurse端末での確認は、公式のエラー解説が勧める切り分けです。VS Code拡張の「Claude Code process exited with code N」の項では、同じプロジェクトで端末から claude を実行すると、失敗が本当のエラーメッセージ付きで再現することが多いとされています。claude doctor でインストールと設定を確かめる手もあります。
移せないときに使える別の入口
会社の管理設定などで、プロジェクトをOneDriveの外へ移せない場合もあります。VS Codeのドキュメントには、グラフィカルなチャットパネルを使わない入り方が2つ載っています。
- 設定の
claudeCode.useTerminal(設定画面では拡張機能の「Claude Code」にある「Use Terminal」)にチェックを入れると、パネルの代わりにCLI風の画面で開きます。既定値はfalseです - 統合ターミナルをCtrlキーとバッククォートキーの同時押しで開き、
claudeを実行します。この場合は、拡張に同梱されたコピーではなく、単体でインストールしたCLIが必要です
この2つが今回の症状を避けられるかは、報告にも公式ドキュメントにも書かれていません。ただし、どちらも起動の経路が違うので、パネルで失敗するときに試す価値はあります。うまくいったかどうかは、issueに書き足すと同じ状況の人に役立ちます。
効かなかった対処
報告者が試して効果がなかった手段は、次のとおりです。同じ手順で時間を使わずに済みます。
試しても変わらなかったこと
拡張の再インストールと再起動
拡張の入れ直し、VS Codeの再起動、OS全体の再起動を行っても、結果は変わりませんでした。
ウイルス対策の確認
Windows Defenderのブロックや隔離の記録は見つかりませんでした。
バイナリの破損の確認
ファイルサイズが一致し、端末から
--versionが通ることまで確かめています。claudeProcessWrapperの指定
別にインストールした
claude.exeを指定しても、同じ失敗でした。
claudeProcessWrapper は、Claudeのプロセスを起動する実行ファイルを指定する拡張の設定です。公式のVS Codeドキュメントでは、拡張のビルドにバイナリが含まれない環境で、別途インストールした claude を指定する用途が書かれています。今回の症状では、指定先を変えても改善しないと報告されています。
原因はまだ分かっていません
報告者は、修正案を2つ出しています。
- 起動に失敗したときに、決まった文面ではなく、
ENOENTやEACCESといった実際のOSエラーを表示する - ワークスペースがOneDriveやDropboxのようなクラウド同期フォルダの中にあるときは、警告を出す
つまり、OneDriveが起動を妨げる仕組みについて、報告の中に確かな説明はありません。報告に書かれている事実は、場所を変えると動くことと、ほかに試した対処が効かないことです。issueはopenのままで、コメントも付いていません。
分かっていないことを、次のように切り分けて持っておくと、状況が変わったときに判断しやすくなります。
- 同じ症状が、DropboxなどOneDrive以外の同期フォルダでも出るかは、報告されていません
- 拡張のバージョンは2.1.269の報告で、新しいバージョンで直ったかどうかは書かれていません
- 作業ディレクトリのどの性質が起動を妨げるかは、特定されていません
自分の環境で再現したなら、issueに拡張のバージョンとログの抜粋を足すと、原因の絞り込みに役立ちます。個人名が入るパスは、<user> のように伏せて貼ります。
OneDriveの外に置いたあとの運用
プロジェクトを移したあとは、C:\Projects のような固定の置き場所を決めておくと、新しいリポジトリを取得するたびに同じ問題を踏まずに済みます。
報告の環境はOneDriveがデスクトップをリダイレクトしていたため、デスクトップに作ったフォルダも同期フォルダの中でした。VS Codeで開くフォルダを選ぶ前に、パスに OneDrive が入っていないかを見ます。デスクトップがリダイレクトされていない環境では、デスクトップは C:\Users\<user>\Desktop のようにOneDriveを含まないパスになります。リダイレクトされていると C:\Users\<user>\OneDrive\Desktop になるので、同じ「デスクトップ」でも置き場所が違います。ワークスペースを開いたあとでも、エクスプローラーのアドレス欄か、ログの cwd: の行で確かめられます。
まとめ
エラー文がmuslとglibcを指していても、Windowsでは先に出ている ENOENT と cwd: のパスを見ます。cwd がOneDrive配下なら、プロジェクトをOneDriveの外へ移して開き直すのが、報告で動作が確かめられている回避です。
移して動いた場合でも、原因が特定されたわけではありません。claudeProcessWrapper の変更や再インストールで時間をかける前に、フォルダの場所を疑うほうが早く済みます。