解决windows版codex内置browser闪退问题

Posted on Jul 26, 2026

前言

最近用windows版codex时遇到了一个很奇怪的问题

普通的网页预览、看看设计页面一直都没事,但只要让codex开始填写输入框、点击按钮或者提交表单,整个软件就会突然退出

同时打开几个browser标签时更容易复现,基本是一操作就闪退

我用的是自定义base url和api key,任务记录也都在本地,所以一开始没敢直接卸载重装,只能慢慢排查

折腾了一圈,最后发现和网页、api key都没什么关系,真正出问题的是内置chromium的GPU子进程

项目当时的环境
系统windows 11
codex桌面版26.721.4979.0
内置chromium150.0.7871.128
认证方式自定义base url + api key

问题

最开始只是让codex打开一个本地网页看设计效果,预览一直很正常,所以当时完全没有怀疑内置browser

后来开始让它操作页面,问题才慢慢出现:

  • 普通预览正常
  • 填写内容时偶尔退出
  • 点击提交后更容易退出
  • 多标签操作基本稳定复现

更奇怪的是,codex退出以后偶尔还会自动启动

看起来和原来一样,但之前手动加的启动参数不一定还在,中间就出现过一次“好像修好了,重新打开又闪退的情况

普通预览没问题,不代表browser操作也没问题


备份

因为没有使用chatgpt账号同步任务,我最担心的还是本地记录

当时在这台电脑上实际确认到的codex目录是:

C:\Users\Administrator\.codex

里面的sessionsarchived_sessionsconfig.tomlstate_5.sqlite都还在,本地任务没有丢

我没有直接重装,而是先完整退出codex,做了一份恢复备份,实际路径是:

C:\Users\Administrator\Documents\Codex\Codex-recovery-20260726-215856

备份里除了.codex,还有OpenAI.Codex-package-data和一份recovery-manifest.json,确认这些内容都存在以后才继续折腾

官方文档也有说明:codex配置和状态位置


缓存问题吗?

第一反应还是比较常见的GPU和缓存问题

我先清理了chromium的GPU缓存和着色器缓存,又关闭了硬件加速

第一次重启实际使用的是下面这些参数:

2026-07-26 22:44:50 Starting Codex with arguments: --disable-gpu --disable-gpu-compositing --disable-software-rasterizer --disable-features=Vulkan

结果普通预览确实稳定了一点,但只要重新开始填表、提交或者多标签操作,codex还是会退出

有用,但不多

后来才知道,关闭硬件加速并不代表chromium不会创建GPU子进程,它还是可能走软件渲染


查看日志

browser后端本身其实启动成功了:

browser_use_iab_backend_startup_ready

继续往后看,真正关键的是下面两段:

Recoverable Chromium child process gone
processType=GPU
reason=crashed
exitCode=101457950

Recoverable Chromium child process gone
processType=GPU
reason=launch-failed
exitCode=18

GPU子进程先崩溃,随后重新启动也失败了

当时它实际使用的是:

--use-gl=angle
--use-angle=d3d11-warp-webgl

d3d11-warp-webgl是windows的D3D11 WARP软件渲染路径

到这里基本能确定,闪退不是网页表单、本地历史、base url或者api key直接造成的,而是内置chromium的GPU子进程,在网页操作和多标签负载下崩了

普通预览负载比较低,所以一直看起来没事。开始填写、点击和提交以后,问题才被真正触发出来


换成swiftshader

确认D3D11 WARP这条路径有问题以后,我把ANGLE后端换成了swiftshader

最后使用的参数:

--disable-gpu
--disable-gpu-compositing
--use-angle=swiftshader
--enable-unsafe-swiftshader
--disable-features=Vulkan

这里还踩了一个小坑

关闭窗口并不一定会结束进程,它可能还留在右下角托盘。旧进程没有完全退出时,新参数实际上不会进入主进程

我当时没有在powershell里逐行输入启动命令,而是在codex弹出的权限确认里点了允许

执行了

$script = 'C:\Users\Administrator\Documents\Codex\2026-07-26\new-chat\outputs\launch-codex-browser-safe.ps1'; Start-Process -FilePath 'powershell.exe' -Verb RunAs -WindowStyle Hidden -ArgumentList @('-NoProfile','-ExecutionPolicy','Bypass','-File',$script)

第一次执行时我没看到提示,不确定有没有运行,所以又手动打开了一次

后来codex退出后确实自动启动了,状态日志里的结果是:

2026-07-26 23:55:36 Starting Codex with arguments: --disable-gpu --disable-gpu-compositing --use-angle=swiftshader --enable-unsafe-swiftshader --disable-features=Vulkan
2026-07-26 23:55:49 Safe browser launcher verified the main process. Activating the Codex window.
2026-07-26 23:55:54 Safe browser launcher completed. Codex is open with verified Chromium flags.

确认参数生效

启动脚本自己检查了主进程和GPU子进程,原来的:

--use-angle=d3d11-warp-webgl

已经变成:

--use-angle=swiftshader

日志里记录的GPU进程是PID 8572,命令行里确实带有--use-angle=swiftshader--enable-unsafe-swiftshader

到这里才算真的生效,不是只看见codex窗口重新打开而已


实际测试

我先用一个本地表单跑了一遍填写、选择和提交,整个过程正常完成,codex没有退出

随后又同时打开三个内置browser标签,在每个标签里完成填写和提交

最后确认三个标签都提交成功,codex主进程持续存活,GPU子进程继续使用swiftshader,日志里也没有再出现新的GPU crashedGPU launch-failed

之前最容易触发闪退的操作都能正常完成,问题大概是解决了


两个小插曲

api key模式下的401

排查时还看到过下面这条日志:

desktop_fetch_auth_401
hadToken=false
target=https://chatgpt.com/backend-api/settings/user

一开始还以为是api key或者base url的问题,后来发现api key并不等于chatgpt网页的登录令牌

这次browser后端已经正常启动,换成swiftshader以后网页操作也恢复了,所以这个401只是刚好同时出现,并不是闪退原因

火绒发力了

为了以后启动方便,中间还做过一个隐藏powershell窗口的.lnk快捷方式,结果被火绒识别成了:

HEUR:Trojan/LNK.Agent.b

看了一下隔离记录,被拦下的正是刚创建的桌面和开始菜单快捷方式

被隔离的只是快捷方式,不是codex历史记录,也不是api key,我没有恢复它,最后换成了内容透明的.cmd入口


结尾

这次一开始看起来像是网页操作或者api key的问题,实际上是内置chromium在D3D11 WARP路径下的GPU子进程崩溃

整个过程大概是:

普通网页预览正常
填表和多标签操作触发闪退
清理缓存和关闭硬件加速没有完全解决
日志发现GPU crashed和launch-failed
确认使用d3d11-warp-webgl
完全退出codex并切换到swiftshader
单标签和三标签测试全部正常

解决问题同时也确认了两件事:本地任务主要保存在.codex里,提前备份以后不用急着重装;api key模式下出现chatgpt接口401,也不一定和browser闪退有关