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へ追加するなら、秘密情報を含めず次だけを揃える。
- エラー全文
- Codex DesktopのAbout画面にあるビルド番号
- OSとバージョン
- Browser / Computer Useのどちらで発生したか
- 完全再起動と新規スレッドでも再現したか
- 可能なら
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側の現行ソースがpermissionProfileやsandboxCwdなどを送る一方、同梱node_replが別のsandboxPolicyフィールドを要求する構図が示されている。1
同様の症状はWindowsだけでなくmacOSからも報告されているため、サイト固有・プロンプト固有の障害と決めつけない。2
まとめ¶
- 正確な文字列が
missing field sandboxPolicyなら、ネットワーク設定ではなくMCPスキーマ互換性を疑う - Desktopアプリと同梱ランタイムを一式で更新し、完全再起動する
- sandbox無効化、危険モード、
.codex削除は最初の対処にしない - 同じエラーが続く場合は、最小限の診断情報を公式Issueへ追加し、画面操作以外の経路で一時回避する