Claude Media
Claude Code VS Code拡張がOneDrive配下で起動しないときの対処

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. 1

    ログで条件を確かめる

    「Claude Code: Show Logs」で、ENOENT の行と cwd: の行を見ます。cwd がOneDriveの中なら、報告と同じ条件です。

  2. 2

    OneDriveの外のフォルダで試す

    C:\Projects\test のような、OneDriveの管理外に空のフォルダを作って、そこをVS Codeで開きます。ここで起動すれば、バイナリやログインは正常で、場所だけが原因と言えます。

  3. 3

    プロジェクトをOneDriveの外へ移す

    Gitで管理しているなら、OneDriveの外に入れ直すのが簡単です。

  4. 4

    端末でも同じか確かめる

    同じフォルダで claude を端末から起動し、本当のエラーが出るかを見ます。

移す作業は、PowerShellで次のように行えます。

git clone <リポジトリのURL> C:\Projects\my-app
code C:\Projects\my-app

Gitを使っていないフォルダは、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つ出しています。

  1. 起動に失敗したときに、決まった文面ではなく、ENOENT や EACCES といった実際のOSエラーを表示する
  2. ワークスペースが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 の変更や再インストールで時間をかける前に、フォルダの場所を疑うほうが早く済みます。

この記事を共有:XはてブLinkedIn