【apply_patch】Codex的win sandbox沙箱问题

20260413更新

试了下更新最新版本(0.120.0版本),apply_patch的新错误已经消失了(注意我说的是我遇到的错误好像没问题了,不知道其他遇到的错误会不会因为更新新版本就修复了),回到之前的旧会话继续也没问题,希望以后别再有问题了,不然也只能用unelevated非提权模式了

对于codex给工作区的文件设置的 CodexSandboxOffline/Online用户的问题,说是把config.toml里的改成sandbox = "unelevated",然后把相关的ACLs都移除就行


链接:Security concern: CodexSandboxOffline/Online assigned to entire user profile tree on Windows 11 · Issue #12343 · openai/codex · GitHub

有人修复了这个CodexSandboxOffline用户权限的问题,具体可以看他发的issue,

这个issue的评论区也有人说重置相关权限就行,也可以试试,目前我没遇到这个问题,我就没按照他们的方法去修复

似乎此次的apply_patch错误windows sandbox: setup refresh failed with status exit code: 1只会发生在使用workplace_write模式下,是被codex破坏了项目工作区的一些文件夹的ACL权限,理论上手动改一下好像就能修,不过看到issue里维护者好像说新版本修复了我再试试

相关链接:

20260412更新

新遇到的apply_patch错误为:windows sandbox: setup refresh failed with status exit code: 1

又坏了,很奇怪,我重建以后测试apply_patch还可以用去(小测试),后面又新建另外一个对话,给了很长的context走之前历史对话里没完成的任务,然后过了很久apply_patch又失败了了,我还是0.115.0的老版本。。。。。。。。。。。。

PS:重建沙盒以后的新对话,是可以正常使用apply_patch命令的,但是重建之前的所有旧对话我测试了一下好像可能是用旧沙盒原因或者缓存啥的,反正还是用不了apply_patch命令

写一下省流版:

如果想用"elevated"模式的windows沙盒:

  1. C:\Users\你用户名\.codex\.sandbox里的setup_marker.json
  2. C:\Users\你用户名\.codex\.sandbox-secrets里的sandbox_users.json
  3. setup_marker.jsonsandbox_users.json删除,你想备份一下也行
  4. 新开终端,试一下用着命令运行一下codex sandbox windows --full-auto -- cmd /c echo SANDBOX_OK
  5. 此时会弹出管理员窗口,点允许,然后看一下刚刚两个文件夹有没有生成新的文件
  6. 有那2个新文件的话,让codex测试一下apply_patch命令是否能正常运行,一般是没问题的

20260323更新

我再更新一下,非常懵逼我现在

这次的apply_patch错误代码: CreateProcessWithLogonW failed: 1326

结论:
这次的错误代码 CreateProcessWithLogonW failed: 1326的问题,检查了下不是sandbox=elevated不能用,也不是0.116新版本CLI写挂了,而是我之前用第三方中转站api转到openai官方登录方式以后,似乎是这个原因导致Codex本地保存的sandbox凭据没更新,清理一下sandbox_users.jsonsetup_marker.json然后重新重建sandbox就正常了。
(我之前一直在用彗星佬的0.111.0版本的codex,后来不知道为啥突然sandbox运行故障了,然后尝试卸载重新装官方的116和115还是不行)

问题的起因:
Codex 本地保存的 sandbox 凭据缓存,和系统里真实的 CodexSandboxOffline / CodexSandboxOnline 密码不同步了。也就是程序拿着旧密码去登录 sandbox 用户,Windows 直接回了 “用户名或密码错误”,于是 CreateProcessWithLogonW 就报 1326,非常懵逼的错误了属于是。

这次关键证据有几条:

1. Security 日志里反复出现 `4625`
   - 失败账号:`CodexSandboxOffline`
   - `Logon Process: seclogo`
   - `Status: 0xC000006D`
   - `Sub Status: 0xC000006A`

这个组合基本就是:
**不是缺少 logon rights,而是密码不对 / 凭据不匹配。**

2. 系统里这两个用户本身还在,而且是启用状态
   - `CodexSandboxOffline`
   - `CodexSandboxOnline`
   - `CodexSandboxUsers` 组也还在

3. 系统账号的 `PasswordLastSet`
   是 `2026-03-21 17:03:27`

4. 但 Codex 本地的这两个缓存文件:
   - `.codex/.sandbox-secrets/sandbox_users.json`
   - `.codex/.sandbox/setup_marker.json`

   最后修改时间还停在:
   `2026-02-23 19:37:05`

也就是说:
**系统里的 sandbox 用户密码后来被改过了,但 Codex 还在用 2 月 23 日那套旧缓存。**

我最后的处理方式也很简单粗暴:
先备份旧的:
- `sandbox_users.json`
- `setup_marker.json`

然后把原文件改名,让 Codex 重新生成新的 sandbox 凭据缓存。

结果:
- `codex sandbox windows -c windows.sandbox="elevated" cmd /c echo ...` 成功
- `shell_command` 恢复正常
- `apply_patch` 也恢复正常
- 原来的 `CreateProcessWithLogonW failed: 1326` 不再出现

所以这次至少在我这台机器上,**最小修复**不是改 `config.toml`,也不是直接退回 `unelevated`,而是:
**把失效的 sandbox 凭据缓存重建掉。**

原问题:

懵逼中,CreateProcessWithLogonW failed: 1326,是codex 0.116.0最新版本的bug吗?我连正常编辑/新建文件都不行,不知道是不是跟sandbox = "elevated"这个参数有关系我再试试,这个ai分析我sandbox的log怎么还分析出是我Windows账户的问题给我整懵逼了

116感觉挺多bug的,已经回退115了 :distorted_face:

哥们不是,我退回115版本还是这个鬼样啊我靠,又是我配置文件出问题了吗?

Windows的沙盒确实是有额外用户的,我116也偶发此问题,115没有遇到什么问题,确实应该考虑回退

我回退了115还是一样,很怪,我再测试测试啥情况 :smiling_face_with_tear:难不成是沙盒不能用sandbox = elevated吗?

不建议用沙箱,直接把我path全杀了,全部工具都没权限

还有这样的事?我用起来好像暂时没问题,虽然workplace以外的文件都要一直问我个不停有点烦,是不是哪里搞错了。elevated这个是设置不同的沙盒模式好像,elevated的更新一些

我是wsl中使用的,今天也遇到了这样的问题,早上把codex更新到最新版本后出现的

哎,我刚刚又试了下,很奇怪,我重建以后测试apply_patch还可以用去(小测试),后面又新建另外一个对话,给了很长的context走之前历史对话里没完成的任务,然后过了很久apply_patch又失败了了,我还是0.115.0的老版本。。。。。。。。。。。

非常懵逼我现在,我再研究一下,换unelevated的沙盒应该也能凑合用用

我发现我的问题了,会话是上周五打开的,早上更新完codex,直接在原会话进行了,退出旧会话重新开了一个正常了

你是啥版本的codex,0.120.0吗?这么神奇,我等下试试

—— 试了下确实更新最新版本,apply_patch的新错误已经消失了,回到之前的旧会话继续也没问题


最新版也有问题 :melting_face:

你这个连读取权限都不行了,是不是codex设置有问题,如果是CodexSandboxOffline/Online账户问题的话,试试新建一个新的项目文件夹,然后在里面测试你截图里的命令是否可用,如果可用那就是CodexSandboxOffline/Online账户问题,临时解决办法是sandbox降到unelevated,并把CodexSandboxOffline用户从你Windows里删除,我帖子里说了这个方法是openai的人说的

如果还是不可用,试试用yolo也就是**–sandbox danger-full-access**去在你原先项目文件夹里进行你截图的操作,看看是不是沙盒的问题,如果yolo模式能正常,那就想办法修codex的沙盒,包括我帖子里说的重建沙盒的操作也试试

因为你这个代码我也第一次见,我是CreateProcessWithLogonW 1326的错误,可能问题修复跟你的不一样?或许,你试过我帖子说的方法了吗

————我把别人说的方法截图到帖子里了, 你可以看看尝试下

20260525更新,记录一下新问题

最近跑codex app,一直从第三方api换到openai官方登录两种方式一直来回切换在用,然后不知道是不是这个用法导致了好像elevated sandbox又出现异常了,我看了下issue有人提了一下可以删一下文件,我有点没看懂就给ai搞

大概就是可以这样(我试了下比较成功的方式是):

1、先关闭codex相关程序
taskkill /IM codex.exe /F 2>$null taskkill /IM codex-cli.exe /F 2>$null

2、先运行在 PowerShell 里运行以下命令,备份并移走全局 sandbox 缓存
(这个命令只会动.sandbox、.sandbox-bin、.sandbox-secrets、cap_sid这4个)

$stamp = Get-Date -Format "yyyyMMdd-HHmmss"
$backup = "$env:USERPROFILE\Desktop\codex-sandbox-backup-$stamp"
New-Item -ItemType Directory -Force $backup | Out-Null

$items = @(
  "$env:USERPROFILE\.codex\.sandbox",
  "$env:USERPROFILE\.codex\.sandbox-bin",
  "$env:USERPROFILE\.codex\.sandbox-secrets",
  "$env:USERPROFILE\.codex\cap_sid"
)

foreach ($p in $items) {
  if (Test-Path -LiteralPath $p) {
    Move-Item -LiteralPath $p -Destination $backup -Force
    Write-Host "Moved: $p"
  }
}

Write-Host "Backup folder: $backup" 

2、然后运行重建一下sandbox codex -c windows.sandbox='"elevated"' sandbox windows cmd /c echo CODEX_ELEVATED_OK

3、然后重启codex,如果能成功运行之前命令的话就不用进行下一步了

4、然后继续尝试,这次按照issue上面说的,把所有相关文件都备份并删除掉(如果还有.sandbox、.sandbox-bin、.sandbox-secrets、cap_sid这四个就也先备份后删掉)
(这个命令只会动state_5.sqlite、state_5.sqlite-shm、state_5.sqlite-wal这3个文件)

$stamp = Get-Date -Format "yyyyMMdd-HHmmss"
$backup = "$env:USERPROFILE\Desktop\codex-state-backup-$stamp"
New-Item -ItemType Directory -Force $backup | Out-Null

$stateItems = @(
  "$env:USERPROFILE\.codex\state_5.sqlite",
  "$env:USERPROFILE\.codex\state_5.sqlite-shm",
  "$env:USERPROFILE\.codex\state_5.sqlite-wal"
)

foreach ($p in $stateItems) {
  if (Test-Path -LiteralPath $p) {
    Move-Item -LiteralPath $p -Destination $backup -Force
    Write-Host "Moved: $p"
  } else {
    Write-Host "Not found: $p"
  }
}

Write-Host "Backup folder: $backup"

5、操作完了以后再次运行codex -c windows.sandbox='"elevated"' sandbox windows cmd /c echo CODEX_ELEVATED_OK

6、然后如果现在重启codex的话可能会出现以下错误


相关错误信息:
软件(Codex)在启动时无法访问其本地 SQLite 数据库。原因是初始化超时(等待了 30 秒),可能是由于数据库文件被其他进程占用、权限问题,或者 WSL(Windows 的 Linux 子系统)兼容性导致的。

**Codex cannot access its local database.**


The app cannot finish launching until its SQLite database is accessible.

Database path: Path unavailable in app-server startup error

Close other Codex applications, then click Retry to check whether access has been restored.

Error: (code=1, signal=null).
Most recent error: Error: failed to initialize sqlite state runtime under C:\Users\Demorain\.codex: timed out waiting for state db backfill at C:\Users\Demorain\.codex after 30s (status: running)
(code=1, signal=null).
Most recent error: Error: failed to initialize sqlite state runtime under 
C:\Users\Demorain\.codex: timed out waiting for state db backfill at 
C:\Users\Demorain\.codex after 30s (status: running)

7、需要修复数据库的问题,我是通过(https://github.com/xdifu/codex-repair),这个修复的,就按照说明修复就好,修复好了以后重启codex就又正常了


我走的是这个

在 Windows 系统中,请从 PowerShell 或 Windows 终端运行以下命令:

# 1. Clone this repo and cd into it.
git clone https://github.com/xdifu/codex-repair.git
cd codex-repair

# 2. Diagnose only — read-only, safe to run even with Codex App still open:
.\repair.ps1 -Mode doctor

# 3. Apply the fix — offers to stop Codex first, backs up DBs, schema-verifies before any write:
.\repair.ps1 -Mode fix -Apply

WSL可能要注意一下你是不是用的windows的codex,wsl是可以作为终端执行windows的程序的,想关掉可以禁止wsl把windows的环境变量拼接到PATH,详见WSL 中的高级设置配置 | Microsoft Learn

(已解决)apply_patch BUG/codex找不到沙箱、沙盒/codex找不到指定模块/Codex的win sandbox沙箱问题

解决办法(鸡汤)来咯。