Claude Media
「path names a network location」の原因と対処 — Claude Code

「path names a network location」の原因と対処 — Claude Code

worktreeで隔離されたセッションがUNC共有や/net自動マウントのパスへの書き込みを止める理由と、シンボリックリンクの場合との対処の違いを解説します。

Claude Codeでファイルの書き込みやコマンド実行が「the path is network-shaped」というメッセージで止まることがあります。これはworktreeで隔離されたセッションが、UNC共有や /net 自動マウントのようなネットワーク形のパスへ書き込もうとしたときにガードがブロックする動作です。似たメッセージに「cannot be safely resolved」がありますが、原因も対処も異なります。この記事ではその違いと、実際の直し方をまとめます。

「path names a network location」エラーとは

Claude Codeがファイルや作業ディレクトリを、自分のマシンに存在しないドライブ・\\server\share\file のようなUNC共有・/net 自動マウントのパスで指定し、かつセッションのチェックアウトがローカルディスク上にあるときに出ます。

コマンド実行がブロックされた場合も対象が作業ディレクトリになるだけで原因は同じで、メッセージの末尾は「re-run the command from its local, plainly-spelled path」に変わります。

このガードは以前から常にあったわけではありません。v2.1.217より前は、ガードはパスの文字列だけを比較しており、UNC共有や/net自動マウントの形で書かれたパスはブロックされていませんでした。そのため、チェックアウト内のファイルをUNCや/netのパス経由で指定した書き込みも素通りしていました。「アップデートしたら急にブロックされるようになった」という場合、これが原因です。

「cannot be safely resolved」とは何が違うか

同じworktree隔離のガードが出す別のエラーに「path is spelled in a form that cannot be safely resolved」があります。どちらもガードが操作をブロックする点は同じですが、ブロックする理由の性質が違います。

「cannot be safely resolved」は、シンボリックリンクや読み取れないディレクトリのように、パスの実際の到達先をガードが判定しきれないケースです。判定できないので、安全側に倒してブロックします。一方「path names a network location」は、パスの綴りそのものからネットワーク形だとすでに確定できるケースです。UNC共有の \\ やドライブレターの形式は、それだけでローカルディスク上のworktreeとは別の場所を指すと分かるため、ガードは解決を試みるまでもなくブロックします。

エラーガードの判定状態典型例
cannot be safely resolvedガードの判定状態到達先が不明(判定できない)典型例ドットセグメント付きシンボリックリンク、読み取れない祖先ディレクトリ
path names a network locationガードの判定状態到達先がネットワーク形だと確定済み典型例\\server\share\file/net/host/path、存在しないドライブ

もう1つの違いは対象となるパスの範囲です。「cannot be safely resolved」のメッセージが例示する3パターンには「デバイス名前空間の形」も含まれますが、これはWindowsの\\.\\\?\のような表記で、必ずしもネットワークを指すとは限らない曖昧な形です。「path names a network location」の対象はUNC共有・/net自動マウント・存在しないドライブレターに絞られており、いずれも綴りだけで「このマシンのローカルディスク上には無い」と断定できる形です。デバイス名前空間の表記に遭遇した場合は、ネットワーク形かどうかにかかわらず前者のエラーとして扱われます。

この違いはメッセージの文言にも表れています。「cannot be safely resolved」のメッセージは、対象ファイルが実際にworktree内にあるなら「symlink-freeな直接パスで」と再試行を促す一方、「path names a network location」のメッセージは同じ言い回しに加えて「Isolating cannot unblock it(隔離を変えても解除されない)」と明記します。判定が不確実なだけの前者と違い、後者は「このパスの形である限り、worktreeで隔離していようがいまいがブロックされる」という確定的な性質を持つためです。

対処法

多くの場合、こちらで何かする必要はありません。エラーの全文はツールエラーとしてClaudeに渡り、Claudeはメッセージが案内するローカルな綴りのパスで自動的に再試行します。これは、対象ファイルが実際にはworktree内のローカルファイルなのに、ネットワークパスに見える形で(たとえばマウントされた共有ドライブ経由で)指定してしまっていたケースで効きます。ファイル編集がブロックされた場合、会話画面には短いError editing fileという表示しか出ませんが、Ctrl+Oで開くトランスクリプト表示には全文が残ります。コマンドがブロックされた場合は、コマンドの出力にそのまま全文が表示されます。

同じ場所で繰り返しブロックされる場合は、対象ファイルが本当にネットワーク共有上にあり、ローカルのworktreeの外にある可能性を疑ってください。その場合、このファイルはセッションのローカルな作業範囲の外にあるので、隔離を解いても編集できるようにはなりません。worktree隔離を伴わない通常の対話セッションから編集するか、ネットワーク共有をローカルにマウントし直してから作業してください。どちらに当たるか判断がつかない場合は、対象ファイルのパスをターミナルで直接開いてみて、実在するローカルファイルかどうかを先に確認するのが早道です。

Windows特有の注意点

UNC形式のパス(\\server\share)は主にWindows環境で使われる形式のため、このエラーもWindows環境で遭遇しやすくなります。あわせて知っておきたいのが、このガードとは別の話として、WindowsでWebDAVを有効にしている場合のセキュリティ上の注意です。Claude Codeが \\* のようなパスにアクセスできる状態でWebDAVが有効だと、権限システムを経由せずにリモートホストへのネットワークリクエストが発生する可能性があるため、Windows上ではWebDAVを有効にしない、またはWebDAVサブディレクトリを含みうるパスへのアクセスを許可しないことが推奨されています。これは書き込みブロックのガードとは別の仕組みですが、どちらも「Windowsのパス形式がネットワークの向こう側を指しうる」という同じ性質に起因する注意点です。

worktree隔離を無効化する設定との関係

worktreeによる隔離自体は worktree.bgIsolation 設定で切り替えられます。既定の "worktree" では EnterWorktree ツールを呼ぶまで共有チェックアウトへの EditWrite がブロックされ、このガードもその隔離の一部として働きます。ただし、path names a network location エラーが示すとおり、"none" に変更してworktree隔離自体をやめても、ネットワーク形のパスが指す到達先が変わるわけではありません。設定の全項目はClaude Code settings.json完全ガイドにまとめています。worktree運用全体の考え方はClaude Code Worktree実践ガイドを参照してください。

よくある質問

エラーが出たら作業は失敗しますか

その場では失敗しますが、対象ファイルが実際にはworktree内のローカルファイルであれば、Claudeは案内されたローカルパスで自動的に再試行し、多くの場合そのまま解消します。

worktreeを使っていない対話セッションでも起こりますか

起こりません。このガードはworktreeで隔離されたセッション、またはworktreeで隔離されたサブエージェントが対象です。隔離を伴わない通常の対話セッションでは判定自体が働きません。

サブエージェントだけがworktreeで隔離されている場合も対象ですか

対象です。バックグラウンドセッション自体がworktreeで隔離されている場合だけでなく、対話セッションの中でサブエージェントだけをworktreeに隔離した場合も、そのサブエージェントの書き込みやコマンド実行にはこのガードがかかります。frontmatterでisolation: worktreeを指定したサブエージェントが対象です。

存在しないドライブレターとは具体的にどんな状態ですか

自分のマシンではZ:\のように特定のドライブレターにネットワーク共有をマップして使っているものの、Claude Codeのセッションが動いているマシン(CI環境やリモート環境など)には同じ文字のドライブが割り当てられていない状態です。ローカルでは普通のパスに見えても、セッション側からはネットワーク形のパスとして扱われます。

macOSやLinuxでも起こりますか

/net 自動マウントのパスはmacOSやLinuxでも使われる形式なので、UNC共有ほど頻度は高くないものの起こり得ます。ネットワークファイルシステムを自動マウントで使っている環境では注意してください。

まとめ

「path names a network location」は、worktreeで隔離されたセッションが、UNC共有や /net 自動マウントのようなネットワーク形のパスへ書き込もうとしたときに出るガードです。同じガード系統の「cannot be safely resolved」が到達先を判定できないケースを扱うのに対し、こちらはパスの綴りからネットワーク形だとすでに確定しているケースを扱うため、隔離設定を変えてもブロックは解除されません。対象ファイルが実際にはworktree内のローカルファイルであれば、Claudeはローカルな綴りのパスで自動的に再試行して解消します。本当にネットワーク共有上のファイルを編集したい場合は、隔離を伴わない通常のセッションから作業してください。

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