Windows の Codex で helper_failed が出るとき:サンドボックス設定と os error 5 の調べ方

Codex の Windows セットアップが helper_failed で止まる場合の診断手順。os error 5、sandbox ログ、バージョンを確認し、起動エラーと権限エラーを切り分けます。

グレーがかったクリーム色の背景にデスクランプの線画と円形の装飾を配した、Codex Windows のカバー

Windows の Codex が Finish Windows setup で止まり、Windows setup didn’t finish • helper_failed と出る場合、まずセットアップのどこで失敗したかを調べます。API キーの変更やモデルの切り替えより先に、Windows サンドボックスの準備とログを確認する場面です。

helper_failed は失敗の概要です。その下に helper_sandbox_lock_failedSetNamedSecurityInfoW sandbox dir failed: 5 などが残っていれば、原因を絞る手がかりになります。同じ表示でも一つの修正で全環境が直るとは限りません。 本記事は2026年9月16日に公式資料と公開 issue を確認した診断ガイドです。Windows 実機での再現・修復テスト結果ではありません。

最初に「アプリ起動」と「サンドボックス設定」を分ける

状況調べる場所
failed to start codex app-servernodePathcodexCliPath が出るapp-server / ブラウザ連携の診断
アプリは開くが Windows setup が完了しない本記事のセットアップ診断
チャットは使えるがファイル操作で helper_sandbox_lock_failedサンドボックス更新時のログと権限
GUI の画面が見えない・クリックできないComputer Use の設定
コマンド実行時に 1385サンドボックス用ユーザーのログオン権限

Codex の Windows サンドボックスは、コマンドがアクセスできるファイルやネットワークを制限する仕組みです。Windows の同名の仮想化機能を起動できることだけでは、Codex のセットアップが正常とは判定できません。

公式 Windows サンドボックス資料では、Windows 11 を推奨し、ネイティブ環境での動作を案内しています。WSL や仮想マシンが必須という説明ではありません。

1. アプリと Windows のバージョンを記録する

通常の PowerShell で、次の読み取り専用コマンドを実行します。

Get-AppxPackage *Codex* |
  Select-Object Name, Version, Status, InstallLocation

Get-CimInstance Win32_OperatingSystem |
  Select-Object Caption, Version, BuildNumber, OSArchitecture

パッケージの StatusOk でも、サンドボックスの初期設定が完了しているとは限りません。何も表示されない場合も、別のインストール方法まで含めて未導入と断定せず、アプリのバージョン画面と照合します。

併せて次の三点をメモします。

  • 初回起動、アップデート後、通常のファイル操作のどこで失敗したか。
  • UAC の管理者承認画面は表示されたか。承認したか、会社のポリシーで拒否されたか。
  • 最後に成功した時期と、その後に変更したアプリ・OS・端末ポリシー。

2. sandbox ログと詳細エラーを読む

公式資料が案内する診断ログは CODEX_HOME/.sandbox/sandbox.log です。公開報告には日付付きの sandbox.*.logsetup_error.json が記録された例もあります。固定のファイル名だけを探して「ログがない」と判断しないようにします。

以下は既定の .codex と、明示的な CODEX_HOME の両方に対応した例です。環境変数そのものは書き換えません。

$codexDataDir = if ($env:CODEX_HOME) {
  $env:CODEX_HOME
} else {
  Join-Path $env:USERPROFILE '.codex'
}
$sandboxDir = Join-Path $codexDataDir '.sandbox'

Get-ChildItem -LiteralPath $sandboxDir -File -ErrorAction Continue |
  Where-Object { $_.Name -match '^(sandbox.*\.log|setup_error\.json)$' } |
  Sort-Object LastWriteTime -Descending |
  Select-Object Name, Length, LastWriteTime, FullName

一覧で見つかったファイルを手元で開き、失敗した時刻の前後を確認します。setup_error.json がある場合は、次のように末尾を読めます。

$setupErrorFile = Join-Path $sandboxDir 'setup_error.json'
if (Test-Path -LiteralPath $setupErrorFile) {
  Get-Content -LiteralPath $setupErrorFile -Tail 80
}

ここで欲しいのはエラー全文、処理名、対象パスです。ログ全体や .sandbox-secrets を共有する必要はありません。公式も .sandbox-secrets の内容を送らないよう案内しています。ユーザー名、社内パス、会話内容、認証情報は共有前に除いてください。

3. os error 5 は「どこへのアクセスが拒否されたか」を確認する

Microsoft のエラー定義では 5ERROR_ACCESS_DENIED です。実行ファイルの起動、フォルダの読み取り、権限設定の変更では、同じ番号でも失敗した処理が異なります。

たとえば次の表示は、単なるプロジェクトファイルの読み取り失敗とは分けて扱います。

helper_sandbox_lock_failed
SetNamedSecurityInfoW sandbox dir failed: 5

該当パスが .sandbox-bin なら、そのディレクトリの権限を読むだけの確認ができます。

$sandboxBinDir = Join-Path $codexDataDir '.sandbox-bin'
Get-Acl -LiteralPath $sandboxBinDir -ErrorAction Continue |
  Select-Object Owner, AreAccessRulesProtected, AccessToString

アクセス拒否で読めない場合は、その結果も記録します。所有者や継承状態だけで正常・異常を断定せず、同じ時刻のセットアップエラーと照合してください。このコマンドは所有者や ACL を変更しません。

#40550 で分かっていること、分かっていないこと

#40550 の最初の報告は Windows 11 とアプリ 26.818.8289.0 の組み合わせです。9月13日のコメントには 26.908.4834.0 でも同種の失敗が報告されています。いずれも利用者の報告で、全 Windows 端末に共通する不具合だと確認されたわけではありません。

コメントには ACL の継承設定を変えて通った例と、直後に再発した例の両方があります。そのため、本記事では継承の一括変更や所有権の取得を「確実な修復コマンド」として掲載しません。issue は確認時点でオープンで、これらの症状に対する普遍的な解決は確認できていません。

4. 公式の設定範囲で対応する

公式資料では、Windows ネイティブのサンドボックスに次の二種類があります。

モード位置づけ確認する点
elevated推奨される、より強い分離管理者承認を伴う初期設定が端末ポリシーで許可されているか
unelevated初期設定ができない場合の代替管理者が許可しているか。分離は elevated より弱い

elevated の準備では、専用の低権限ユーザー、ファイル権限、ファイアウォールやローカルポリシーの設定が関係します。UAC を拒否した場合は、端末の利用ルールの範囲内で公式セットアップを再試行します。承認済みでも失敗する場合は、ローカルユーザーの作成や必要なログオン権限などを管理者に確認します。

unelevated は公式に案内される代替ですが、サンドボックスの無効化とは異なります。一方、管理者が elevated のみ許可していれば切り替えられません。また #40550 には代替設定で初回セットアップが解決しなかった報告もあるため、切り替えれば必ず起動するとは案内できません。 利用する場合は、現在の公式設定手順と組織の方針を確認してください。

1385 が出る場合

公式資料は、1385 をサンドボックス用ユーザーに必要なログオン種別が許可されていない状態として説明しています。helper_failed という表面上の表示だけで同じ対処へ進まず、管理者へ Windows バージョン、サンドボックスモード、該当ログを渡します。

5. 復旧は一度の起動で終わらせず、同じ操作で確認する

更新や公式セットアップの再試行後は、次を確認します。

  1. セットアップが完了し、元のプロジェクトを開ける。
  2. Codex からそのフォルダのファイル一覧を読む、という変更を伴わない操作ができる。
  3. 同じ読み取りをもう一度行っても、同じエラーが戻らない。
  4. アプリを通常の手順で再起動した後も、その読み取りができる。

これは再発を確認するための提案手順です。本記事で成功を実測したという意味ではありません。画面上の「セットアップ完了」だけでは、次回のサンドボックス更新まで正常か分からないため、元の失敗条件に戻って確かめます。

解決しない場合は、次の短い記録が役に立ちます。

Windows のエディション / ビルド:
アプリのバージョン:
サンドボックスモード(分かる場合):
失敗した操作と時刻:
UAC の表示と承認結果:
エラー全文(個人情報を除去):
更新・再起動後の再現結果:

アプリ全体を管理者で常用する、セキュリティソフトを停止する、.codex をまとめて削除する、といった広い変更は診断の第一手にしません。エラーが示す処理を絞り、公式の更新・セットアップ経路か、管理者による対象を限定した調査へつなげます。

参考資料

よくある質問

helper_failed は何が原因ですか?
Windows セットアップ用のヘルパー処理が失敗したことを示します。表示だけでは原因は確定しません。UAC、端末ポリシー、ファイル権限などを、発生段階と sandbox ログで切り分けます。
os error 5 が出たら管理者として実行すれば直りますか?
os error 5 はアクセス拒否です。どの処理が拒否されたかによって対応が異なります。UAC 承認後も失敗した利用者報告があるため、アプリ全体の管理者実行を万能な修復方法とは扱えません。
unelevated にすれば必ず使えますか?
公式には elevated が利用できない場合の代替サンドボックスとして案内されていますが、管理者ポリシーで禁止される場合があります。初回セットアップ自体が止まる問題を必ず解決するものでもありません。