コンテンツにスキップ

Codex node_repl「missing field sandboxPolicy」対処法:Browserが動かない場合

対象: Browser / Computer Useの起動時にこのエラーが出る人

次のエラーは、通常のネットワーク拒否ではない。

Mcp error: -32602: js: codex/sandbox-state-meta:
missing field `sandboxPolicy`

Codexと同梱node_replのMCPメタデータ形式が一致していない状態として、公式Codexリポジトリへ複数報告されている。アプリ本体と同梱ランタイムを揃えて更新し、それでも再現する場合は設定を弱めず、修正版を待つかIssueへ診断情報を追加する。

この記事のポイント

  • 通常のネットワーク拒否とmissing field sandboxPolicyを区別する
  • Desktop本体と同梱ランタイムを一式で更新する
  • sandbox無効化や.codex削除を最初の対処にしない

まず30秒で見分ける

この問題には次の特徴がある。

  • Browser、Chrome操作、Computer Useの開始時に出る
  • node_repl/jsがJavaScript本体を実行する前に失敗する
  • エラーコードはMCPの-32602で、sandboxPolicyフィールド不足を示す
  • curlや通常のシェル通信は動く場合がある

この条件が揃うなら、network_access=trueを追加する問題ではない。公式Issue #29338では、Codex内部のターンには有効なsandbox policyがある一方、node_replへ渡すMCPメタデータのスキーマが一致しない状態が報告されている。1

安全な復旧手順

1. Codex Desktopを完全終了する

ウィンドウを閉じるだけでなく、Codex関連プロセスが残っていない状態にしてから再起動する。古いapp-serverや同梱ランタイムが残ったままだと、更新後も同じ組み合わせを使い続ける可能性がある。

2. Desktopアプリ本体を更新する

Codex Desktopの更新機能、またはインストール元のストアからアプリを更新する。ターミナルで単体のcodex updateを実行しても、Desktopが使う同梱app-serverやnode_replまで置き換わるとは限らない。

重要なのは、次を別々に最新化することではなく、Desktopが同梱した互換性のある一式を使うことだ。

  • Codex Desktop
  • Desktop内のCodex/app-server
  • Browser / Computer Useプラグイン
  • 同梱node_replランタイム

3. 新しいスレッドで1回だけ再テストする

更新と完全再起動後、新しいスレッドでBrowser操作を1回試す。同じ文字列が出るなら、プロンプトや対象サイトではなくランタイム境界の問題と判断しやすい。

やってはいけない対処

sandboxを無効にする

Issue #29338では、node_repl--disable-sandboxも回避策にならなかったと報告されている。メタデータ検証がJavaScriptカーネル起動前に失敗するためだ。1

つまり、次のような変更は解決にならず、防御だけを弱める。

  • danger-full-accessへ切り替える
  • 承認をneverへ変える
  • --dangerously-bypass-approvals-and-sandboxを使う
  • プロジェクトを無条件にtrusted扱いへ変える

.codexを削除する

このエラーはSQLite破損や認証失敗を示していない。設定・会話履歴・認証状態を含み得る.codex全体を削除しても、同じ不整合ランタイムが再配布されれば再発する。削除や初期化を最初の手段にしない。

network_accessを繰り返し変更する

missing field sandboxPolicyは「外部サイトへ接続できない」という結果に見えるが、失敗点はネットワーク要求より前だ。通常のネットワーク制限とは別記事で切り分ける。

再現が続く場合に集める情報

公開Issueへ追加するなら、秘密情報を含めず次だけを揃える。

  1. エラー全文
  2. Codex DesktopのAbout画面にあるビルド番号
  3. OSとバージョン
  4. Browser / Computer Useのどちらで発生したか
  5. 完全再起動と新規スレッドでも再現したか
  6. 可能ならcodex doctor --jsonの確認済み・伏字済み出力

ローカルユーザー名、プロジェクト名、会話内容、認証トークン、.codexディレクトリ一式は添付しない。

修正版までの代替手段

この問題が残っている間は、node_repl依存の画面操作を避ける。

  • Webページは手動ブラウザで開き、必要なHTMLやエラーをCodexへ渡す
  • APIがある作業は、通常のCLIやcurlで実行する
  • シェルやファイル編集だけのタスクは、Browser / Computer Useを使わず継続する

この代替は機能を完全に置き換えないが、権限設定を危険側へ倒さず作業を進められる。

原因を一言で説明すると

Codex側が送るcodex/sandbox-state-metaと、node_repl側が要求するスキーマの世代がずれている。Issue #29338では、Codex側の現行ソースがpermissionProfilesandboxCwdなどを送る一方、同梱node_replが別のsandboxPolicyフィールドを要求する構図が示されている。1

同様の症状はWindowsだけでなくmacOSからも報告されているため、サイト固有・プロンプト固有の障害と決めつけない。2

まとめ

  • 正確な文字列がmissing field sandboxPolicyなら、ネットワーク設定ではなくMCPスキーマ互換性を疑う
  • Desktopアプリと同梱ランタイムを一式で更新し、完全再起動する
  • sandbox無効化、危険モード、.codex削除は最初の対処にしない
  • 同じエラーが続く場合は、最小限の診断情報を公式Issueへ追加し、画面操作以外の経路で一時回避する

参考資料

関連記事