Not publishedのnetwork share拒否とartifactの直し方 — Claude Code
artifactの公開で「that file is on a network share」と止まる理由と、UNC・/netのパスを直す手順を示します。Coworkで接続フォルダ外のファイルが読めない場合もあわせて扱います。
Claude Codeでartifactを公開しようとして「Not published: that file is on a network share」と出たときは、公開元のファイルがネットワーク上のパスにあります。Windowsの\\server\shareか、macOS・Linuxの/net/<host>/のような自動マウントのパスです。ファイルを開く前に止められるため、中身の問題ではありません。
直し方は単純で、ファイルをローカルディスクのフォルダーにコピーして、もう一度頼みます。この記事では、拒否される理由、例外になる条件、Coworkで似た趣旨のメッセージが出る場合の見分け方をまとめます。
画面に出る文言と、止まった側の事情
拒否はArtifactツールの結果として表示されます。文言は次の1行です。
Not published: that file is on a network share. Publish a file from this session's folders instead.後半は、Claudeに向けた指示でもあります。このセッションのフォルダー内にあるファイルを公開し直すよう促す文なので、そのファイルでなくてよい場合は、Claudeが自分で別のファイルを選んで進めます。
拒否されるパスは2種類です。
| 環境 | 拒否されるパス | 例外 |
|---|---|---|
| Windows | 拒否されるパス\\server\share形式 | 例外起動時に--add-dirで渡したネットワークドライブの配下 |
| macOS・Linux | 拒否されるパス/net/<host>/page.htmlのような自動マウント | 例外記載なし |
パスの「名前」でホストを名指ししているものだけが対象です。割り当て済みのドライブ文字や、/mnt・/Volumes以下にマウントしたものは、見た目の上ではローカルのパスと変わりません。
なぜ中身を読む前に拒否するのか
理由はドキュメントに明記されています。そのようなパスを調べる(ファイルの存在やサイズを確かめる)だけで、パスが指すホストへ接続が起きます。Windowsではこの接続の際に、相手のホストへ資格情報が渡る可能性があります。
このため、Claude Codeはファイルを読まず、公開もしません。macOS・Linuxの/netも同じ判定で止まりますが、資格情報の送信が起こりうると書かれているのはWindowsの場合です。「読めなかった」のではなく、「触れないと決めている」拒否です。権限を許可しても、リトライしても結果は同じになります。
同じ綴りを拒む仕組みは、書き込みやコマンド実行の側にもあります。そちらは文言が異なり、worktreeで隔離したセッションの話になるため、「path names a network location」の対処で切り分けています。
直し方は3通り
状況に応じて、次のうち手間の少ないものを選びます。
Not publishedが出たときの対処の順番
- 1
そのファイルが必須か考える
必須でなければ何もしなくてよい場合があります。メッセージに従い、Claudeがセッションのフォルダー内の別ファイルで公開し直します。
- 2
ローカルのフォルダーにコピーする
共有上のファイルを手元のディスクにコピーし、「コピーしたファイルでもう一度公開して」と頼みます。いちばん確実な方法です。
- 3
共有を直接使える形でつなぐ
共有上から継続的に公開したいときは、次の節のとおり、ドライブ文字やマウント先を使います。
Windowsでドライブ文字に割り当てて使う
共有から直接公開したい場合、\\server\shareをドライブ文字に割り当て、そのドライブを起動時に渡します。PowerShellでの例です。
net use Z: \\server\share
claude --add-dir Z:\これでZ:\配下のファイルを、Claudeが公開できるようになります。ポイントは次の2つです。
- ドライブを渡すのは、Claude Codeの起動時です。セッション途中の
/add-dirでは足りません - 渡すのは割り当て済みのドライブで、
\\server\shareの綴りそのものではありません
/add-dirでUNCパスを足そうとして別の警告が出る場合は、network pathの警告の仕様が絡みます。
macOS・Linuxで自動マウントを避ける
/net/<host>/...の自動マウントのパスは使えません。共有を/mntの下や、macOSなら/Volumesの下など、通常のディレクトリにマウントし直して、そちらのパスから公開します。
# 例: NFS共有を /mnt/team-share にマウントして使う
sudo mkdir -p /mnt/team-share
sudo mount -t nfs fileserver:/export/share /mnt/team-share上は書式の例で、サーバー名とエクスポート先は環境に合わせて読み替えます。マウント方式(NFS、SMBなど)は問われません。ポイントは、ホスト名を含む自動マウントの綴りから離れることだけです。
Coworkで出る「approval card」の拒否は別のメッセージ
Claude Desktopアプリで動くCoworkのセッションでは、似た場面で別の文言が出ます。こちらはネットワーク共有の話ではなく、ファイルが「このセッションの接続フォルダー内にある普通のファイル」だと確かめられなかったときの拒否です。
確かめられない条件は3つです。
- パスが接続フォルダーの外にある
- シンボリックリンクを経由している
- 実際と違うファイルを指しうる綴りになっている
通常のセッションなら、読む前に承認を求められます。ところが、承認カードを表示できないセッション(すべての承認をスキップする設定など)では、カードに答える人がいないため、読み込みそのものが拒否されます。
Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.ファイルを調べられなかった場合は、失敗の種類を名指しする文言になります。
cannot read file_path (ENOENT) — the file could not be examined, and no one can answer the approval card in this Cowork session. Check that the file exists as a plain file inside the connected folders, then retry with that path.対処は、ファイルを接続フォルダーの1つにシンボリックリンクでなく通常のファイルとしてコピーし、そのパスで頼み直すことです。文言にある「このファイルをこのセッションで再試行しない」は、Claudeへの指示です。同じパスを繰り返し頼んでも通りません。
ローカルにコピーしても承認を聞かれる場合
コピー先が作業ディレクトリの外にあると、ネットワーク共有ではなくても確認が出ます。Claudeが承認なしで読めるのは、作業ディレクトリと、ページの書き出し先の一時ディレクトリ内のファイルです。外にあるファイルは、公開の前に承認を求められます。この承認は、Artifactツールに許可ルールを足してもスキップされません。
承認を毎回出したくなければ、コピー先のフォルダーを作業ディレクトリに加えます。起動時なら--add-dir、セッション中なら/add-dirです。ここで効きかたがネットワークドライブと違う点に注意します。ローカルのフォルダーなら、途中の/add-dirで足りますが、Windowsのネットワークドライブを公開元にするには、起動時の指定が必要でした。
claude --add-dir ~/artifact-sourcesコピーしたファイルが満たす条件
コピー先に置くファイルには、ネットワーク以外にも条件があります。ページ側の制約として、次の3つが挙がっています。
| 項目 | 条件 |
|---|---|
| 拡張子 | 条件.html、.htm、.mdのいずれか |
| 文字コード | 条件UTF-8、またはバイトオーダーマークで判別できるリトルエンディアンのUTF-16 |
| 描画後のサイズ | 条件16 MiB以下。超える原因は大きな埋め込み画像が多い |
共有上の古いファイルがShift-JISで保存されているときは、コピーしただけでは公開できません。UTF-8で保存し直してから頼みます。拒否されたパスの問題と文字コードの問題は、別々の文言で出ます。
元のファイルを更新し続けたい場合、コピーは1回きりになります。更新のたびにコピーし直すか、前の節のドライブ割り当て・マウントで運用します。
どちらのメッセージか見分ける
2つの拒否は、原因も直し方も違います。メッセージの冒頭で切り分けられます。
| 見える文言 | 原因 | 直し方 |
|---|---|---|
Not published: that file is on a network share | 原因ファイルのパスがネットワーク上のホストを名指ししている | 直し方ローカルへコピー。または、ドライブ割り当て・通常のマウント先に変える |
Reading a local file from outside this session's connected folders... | 原因Coworkで、接続フォルダー外・リンク経由などのファイルを読もうとした | 直し方接続フォルダー内に通常のファイルとしてコピー |
cannot read file_path (ENOENT) | 原因指定のファイルを調べられなかった | 直し方ファイルが接続フォルダー内に実在するか確かめて再試行 |
接続フォルダー内にあるファイルなら、どのパスでも通るわけではありません。シンボリックリンク経由のものは、Coworkでは対象外になります。
どの面で起きるか
artifactを公開できるのは、Claude CodeのCLIと、バージョン1.13576.0以降のClaude Desktopアプリです。claude remote-controlで自分が始めたセッションでも公開できます(Claude Code v2.1.281以降)。したがって、network shareの拒否もこれらの面で出ます。
Agent SDK、GitHub Action、-pでの非対話実行は、初期状態ではartifactが無効です。その場合はネットワークのパス以前に、公開そのものが行われません。
公開できないほかの原因との区別
公開が失敗するときの文言は、パスの問題だけではありません。ドキュメントには、次の2つが別項目として載っています。
- ファイルのバイト列がUTF-8として読めない、または
U+FFFDを含む場合は、読み込み前に止まります。メッセージに最初の位置が出るので、UTF-8で保存し直します - 新しい版のartifactに拒否されたあと、同じ内容を再送した場合に「Not published: Claude sent the same content again...」と出ます。Claudeに最新版を取り直して統合させるか、そのまま公開し直させます
artifactそのものが使えない設定の場合は、公開ではなくローカルのHTMLファイルが書かれて終わります。この場合の条件は、プラン(Pro・Max・Team・Enterprise)、claude.aiアカウントでのログイン、モデルの提供元がAnthropic APIであること(Bedrock、Vertex、Foundryでは使えません)などです。
まとめ
「that file is on a network share」は、ファイルの内容ではなく、パスの綴りが理由で止まる仕組みです。ローカルにコピーするのがいちばん早く、共有を使い続けるならWindowsは起動時の--add-dir、macOS・Linuxはホスト名を含まないマウント先に切り替えます。Coworkで承認カードの文言が出たときは、ネットワークの話ではなく、接続フォルダー内の通常ファイルに置き直す話です。