Claude Media
Not publishedのnetwork share拒否とartifactの直し方 — Claude Code

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

    そのファイルが必須か考える

    必須でなければ何もしなくてよい場合があります。メッセージに従い、Claudeがセッションのフォルダー内の別ファイルで公開し直します。

  2. 2

    ローカルのフォルダーにコピーする

    共有上のファイルを手元のディスクにコピーし、「コピーしたファイルでもう一度公開して」と頼みます。いちばん確実な方法です。

  3. 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で承認カードの文言が出たときは、ネットワークの話ではなく、接続フォルダー内の通常ファイルに置き直す話です。

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