Codex 项目消失怎么办:更新或换账号后侧栏空了,数据多半还在
Codex 更新或换账号后项目消失,多半只是侧栏列表被清空,数据库和会话还在。换账号导致的,26.1106.51428 有人报告修好;其他情况先退出并备份 .codex。
文章目录

Codex 更新、切换账号或工作区,或者电脑异常关机之后,ChatGPT 桌面版(原来的 Codex 桌面版,很多人仍叫它 Codex App)侧栏的"项目"区显示"没有项目"或少了几个,多数情况下数据还在本机。这里的项目是你添加进侧栏的本地文件夹,不是 ChatGPT 网页版里归类聊天的"项目"。桌面版把项目登记在两处:~/.codex/state_5.sqlite 这个项目数据库,和 ~/.codex/.codex-global-state.json 里的一份侧栏列表。侧栏按列表显示,应用启动时只把列表里的项目往数据库补,不会反过来从数据库补回列表,所以列表一旦被清空,数据库完好,项目也不会自己出现。
先做什么取决于之前发生了什么。刚切换过账号或工作区,把应用更新到 26.1106.51428 或更新的版本,再用菜单彻底退出后重新打开:截至 2026 年 11 月 12 日,已有三名用户报告这个版本把项目找了回来,OpenAI 没有为它发布说明。其他情况,先在应用彻底退出时把整个 .codex 文件夹复制一份,再做只读检查;不要急着用"添加项目"把文件夹重新加回来,那样会生成一个新项目,旧会话不会回来。网上下载的恢复脚本也先别运行。
例外有两种。sessions 文件夹里的会话文件本身也没了,重建侧栏列表就救不回来,只能找系统备份并向 OpenAI 反馈。项目还在、只是少了部分会话,或者接了 cc-switch、CCCV 这类第三方 provider 之后会话列表不见了,原因不同,下文分别说明。
侧栏为什么显示"没有项目":项目登记在两处,启动时只单向复制
侧栏空了而数据还在,是因为两处登记只有一个方向的同步。项目数据库 state_5.sqlite 的 projects 和 project_roots 两张表记着每个项目的名称和文件夹路径;状态文件 .codex-global-state.json 里的 local-projects 键是侧栏列表,project-order 键记顺序,两边的项目 ID 不同,靠另一个映射键对应。按 26.1103.60933 版的代码,每次启动应用先读数据库里的项目,再逐个检查侧栏列表,把列表里有、数据库里没有的项目写进数据库;更新项目的函数只改列表里已有的条目,所以数据库里有、列表里没有的项目不会被补回列表。

这些结论来自 2026 年 11 月 12 日在一台 Mac 上做的只读检查:ChatGPT 桌面版 26.1103.60933(build 25894),一个账号,读的是复制出来的数据库和状态文件副本,同时读了这个版本安装包里的代码。那台 Mac 上项目没有消失,检查看到的是正常状态:数据库里 17 个项目、18 个根路径,侧栏列表 17 项,全部能通过映射对上数据库里的行。会话也不是靠项目 ID 挂在项目下,1,458 个会话的 project_id 全是空的,其中 1,246 个靠工作目录落在某个项目的文件夹里。项目消失状态没有在这台机器上复现,"侧栏按列表显示"是按代码调用关系得出的推断。
这个推断和读过安装包的用户结论一致。GitHub issue openai/codex #54538 的作者(2026 年 10 月 16 日,Windows 26.1013.3656.0)发现侧栏列表是空对象,数据库里 6 个项目、7 个根路径都在,数据库完整性检查也正常,补回列表后侧栏恢复。#58397 的作者侧栏全空时,日志照样写着 projectCount=23,数据库里旧项目的记录也一条不少。
切换账号会清空侧栏,原因也在状态文件里。安装包代码把界面状态按"用户 + 账号"分开存:当前账号的项目列表放在顶层,其他账号的放在 electron-account-renderer-state-v1 键下的 inactive 部分,各用一个哈希值区分。切到一个没有存档的账号,顶层的项目列表就是空的;原来那份列表还留在文件里,并没有被删除。
你是哪一种:按之前做了什么、日志里写了什么对照
同样是"项目没了",原因至少有五类,第一步各不相同,所以先回想消失之前做了什么,再看下一节检查得到的结果。下表的原因来自 GitHub issue 里用户的报告和读包结论,每一类注明出处;同一台电脑可能同时碰上两类。
| 之前做了什么 | 你看到的 | 可能原因 | 第一步 |
|---|---|---|---|
| 切换账号或工作区,或退出后重新登录同一账号 | 项目全没,有时又出现首次使用引导 | 侧栏列表按账号分开存,当前账号下没有存档(#59895,11 月 6 日起集中出现) | 更新到 26.1106.51428,彻底退出再开 |
| 断电、强制关机或蓝屏之后再打开或更新 | 项目全没;日志有 Failed to load global state 和 is not valid JSON | 状态文件被写进空字节,读不出来时应用按空状态处理,下次保存把空状态写回(#52713、#58397) | 彻底退出,整份备份 .codex;这一类没有修复报告 |
| 更新后打开 | 项目全没,日志的 projectCount 仍是原来的数,状态文件能正常读出 | 更新时的项目迁移出错,侧栏列表没有写回(#42739) | 同上 |
设过 CODEX_HOME 环境变量 | 像新装的一样,什么都没有 | 应用读的是另一个目录(#42739 一名用户) | 先查这个变量 |
打开会话报 no rollout found for thread id | 数据库只剩很少的项目,旧会话打不开 | 会话文件真的缺失(#58397 一名用户) | 本地重建救不回,找系统备份 |
| 没做什么,项目都在 | 只少了部分会话,项目下面是空的 | 侧栏只加载最近 50 个会话,或会话被归档 | 见后文"No chats"一节 |
接了第三方 provider 的情况不在表里,因为它是另一回事。用 cc-switch、CCCV 这类工具把 Codex 切到别的 model_provider 之后,旧会话按 provider 被筛掉,列表里就看不到了,但会话还在,codex resume <会话 ID> 仍能打开;cc-switch 的 GitHub issue 里给的办法是切回创建这些会话时用的 provider,再彻底退出并重启桌面版。CC Switch 的路由模式和"回到直连"怎么操作,见 CC Switch 下 Codex 看不到 GPT-6.1 Terra:回直连或升 0.165.0。
不改任何文件,确认数据还在:五步只读检查
下面五步只读取、不修改,做完能知道两处登记里哪一处空了、会话文件还在不在。macOS 的路径在 2026 年 11 月 12 日那台 Mac 上核对过,下面的命令也按 macOS 写;Windows 的路径来自 GitHub issue 里用户的报告,没有在 Windows 上验证。
| 要找的东西 | macOS | Windows(用户报告) |
|---|---|---|
| 项目数据库 | ~/.codex/state_5.sqlite,旁边的 -wal、-shm 是它的一部分 | %USERPROFILE%\.codex\state_5.sqlite |
| 状态文件(含侧栏列表) | ~/.codex/.codex-global-state.json,同目录有 .bak 和 .tmp-* | %USERPROFILE%\.codex\.codex-global-state.json |
| 会话文件 | ~/.codex/sessions/年/月/日/rollout-*.jsonl,也有压缩的 .jsonl.zst | %USERPROFILE%\.codex\sessions\ 下同名文件 |
| 已归档会话 | ~/.codex/archived_sessions | %USERPROFILE%\.codex\archived_sessions |
| 应用日志 | ~/Library/Logs/com.openai.codex/年/月/日 | 官方故障排查文档没有给出 |
没有用户报告把项目数据放在 Windows 的 LocalAppData 里。设过 CODEX_HOME 的话,上面的 .codex 换成这个变量指向的目录,会话和归档的默认位置见 ChatGPT 桌面版官方故障排查文档。
-
记下应用版本和消失之前做过的事:更新、换账号、异常关机还是换 provider,以及大致时间。Windows 版的版本号有两套,Microsoft Store 里显示的包版本(如 26.1103.4239.0)和应用"关于"里的版本(如 26.1103.32239)是同一次发布,反馈时两个都写上。
-
在侧栏"最近"和搜索里找一个旧会话并打开。能打开,说明它的会话文件还在。
-
macOS 上搜日志,看数据库里还有几个项目、状态文件有没有读失败:
grep -rhE "projectCount=|Failed to load global state|Dropping invalid global state" ~/Library/Logs/com.openai.codex/2026 | tail -20每次启动应用会写一行
Local app-server project migration completed projectCount=N,N 是这次从数据库匹配到的项目数,大于 0 就说明数据库里的项目还在。出现Failed to load global state表示整个状态文件没读出来;出现Dropping invalid global state for key表示其中某个键格式不对、被丢掉了,其余照常。 -
数一下会话文件。
find ~/.codex/sessions -name 'rollout-*' | wc -l会同时数到.jsonl和.jsonl.zst;只搜.jsonl会漏掉压缩文件,误以为会话丢了:2026 年 11 月 12 日那台 Mac 上,压缩的.jsonl.zst有 1,271 个,未压缩的.jsonl只有 134 个。Windows 上在资源管理器里搜rollout-也一样。 -
用应用菜单里的"退出 ChatGPT"彻底退出(macOS 也可以按 Cmd+Q;Windows 用户报告的英文菜单是 File > Quit ChatGPT),只关窗口不算,再把整个
.codex复制一份,之后的读取都在副本上做:cp -Rp ~/.codex ~/codex-backup sqlite3 "file:$HOME/codex-backup/state_5.sqlite?mode=ro" "select count(*) from projects;" python3 -c 'import json,sys; d=json.load(open(sys.argv[1])); print(len(d.get("local-projects") or {}))' ~/codex-backup/.codex-global-state.json echo "$CODEX_HOME"Windows 上确认后台进程都已结束(顺序见 Codex Windows 后台进程怎么处理:哪些该保留,哪些可以结束),再在资源管理器里把
%USERPROFILE%\.codex整个复制到别处。
第 5 步的两个数字就是答案。数据库有项目而列表是 0,属于"侧栏列表被清空",数据都在;Python 那一行直接报错,状态文件很可能已经损坏;两个都是 0,先看 CODEX_HOME 是否指向了别的目录,再对照第 4 步的会话文件数。网上有说法把状态文件里 app-server-projects-migration-by-host 的 projectsMigrated: true 加 threadAssignmentsMigrated: false 当成迁移失败的标志,这对值不能用来判断:那台侧栏正常显示 17 个项目的 Mac 上也是这两个值,还挂着 325 个待处理的会话,#58397 的作者同样提醒过这一点。判断只看侧栏列表是不是空的、数据库里还有没有项目。

换账号或工作区后项目消失:更新到 26.1106.51428 再彻底退出
换账号导致的项目消失,目前最直接的办法是更新到 26.1106.51428 或更新的版本,再彻底退出重开。OpenAI 的开发者 dhruvgupta-oai 在 2026 年 11 月 9 日(UTC)于 #59895 回复:"We are aware of the issues here and are working on a fix which should be out in the Tuesday release."(已经知道这些问题,修复会在周二的版本里发布。)11 月 11 日,macOS 用户 ss-glocal 和 #60376 的 prevedsergo、Windows 11 用户 legend-yx 分别报告 26.1106.51428 上项目回来了,ss-glocal 说自己没做任何手动修复,只是等到了更新。
- 检查更新。Windows 版没有自动更新的话,去 Microsoft Store 手动检查更新,legend-yx 就是这样拿到新版本的;macOS 上 ss-glocal 的建议是手动检查一次,入口是应用菜单里的"检查更新…"。
- 在"关于"里确认版本是 26.1106.51428 或更新。
- 用应用菜单里的"退出 ChatGPT"彻底退出,再重新打开,在原来创建项目的那个账号或工作区下看侧栏。
修复之前,一些用户靠"彻底退出再打开"临时找回项目:#59895 里四人确认有效,另有三人无效,他们当前账号下的侧栏列表已经真的空了。更新后仍然看不到,原来那份列表大概率还在状态文件的 inactive 部分;有五名用户把那里的项目字段手动拷回顶层后恢复,但也有人提醒直接拷会和现有数据冲突,有 16 条会话归属指向了不同项目。动手之前先完成上一节第 5 步的备份。另一名用户 EolnMsuk 报告,更新到 26.1106.51428 后,之前手动重建过的项目出现了重复。截至 2026 年 11 月 12 日,#59895 仍未关闭,修复不是人人都确认过。
异常关机或更新后列表被清空:先备份,再决定怎么恢复
状态文件损坏、更新时迁移出错这两类,截至 2026 年 11 月 12 日没有任何修复报告,不能指望 26.1106.51428 一并修好:11 月 8 日到 10 日仍有新的报告,包括 #60541 和 #60672。所以第一步是在应用彻底退出时,按上一节第 5 步把 .codex 整份复制出来,之后不管选哪种办法,搞坏了都能退回这一份。
有几种做法会让情况更糟,或者白费功夫,都来自 issue 里用户的报告。应用运行时去改状态文件,会被应用覆盖回去;只改数据库里会话的 project_id,侧栏不会变;从 Codex 自己的会话里启动修复脚本,应用一退出脚本也跟着被结束;重装应用没有用(#58754),点 Reset workspace 会丢掉历史(#51216)。网上流传的 .bat、.py 恢复脚本和"复制这行命令到终端"的远程安装命令,没读懂代码之前不要运行,这类脚本要读写你整个 .codex 目录。
恢复成功后也别删这份备份,有用户修好后又丢过(见文末问答)。确实需要官方协助时,OpenAI 支持在社区里的回复是带上当前版本号和还缺什么去联系支持(见文末的反馈清单)。
用"添加项目"把文件夹加回来:为什么会多出一个空项目
官方故障排查文档说,从侧栏移除的项目可以用"添加项目"按钮或 Cmd+O 重新添加来恢复。这句话针对的是你自己点"移除项目"的情况。这次的问题里,多名用户报告重新添加文件夹会生成一个新的项目 ID,旧会话不会挂回来,新项目下面是空的;OpenAI 支持曾两次这样建议,结果就是出现重复项目(#46987、#47827)。数据库里原来的项目记录还在,所以等侧栏列表恢复后,你会看到同一个文件夹出现两次。
.codex-global-state.json.bak 能直接拿来恢复吗
多半不能。按 26.1103.60933 版的代码,应用每次保存状态文件,都先写主文件,再把同一份内容写进 .codex-global-state.json.bak,那台 Mac 上两个文件逐字节相同。所以 .bak 不是旧版本的备份:侧栏列表被清空之后,只要应用又保存过一次,.bak 里也是空的。可能留着旧列表的是同目录下没清理掉的 ..codex-global-state.json.tmp-* 临时文件(那台 Mac 上有 12 个,日期在 2026 年 6 月到 8 月),以及 Time Machine 或 Windows 文件历史里的旧快照;有四名用户报告用这些旧文件里的项目字段恢复成功。
从项目数据库重建侧栏列表:别人怎么做的
被确认最多的社区办法,是按项目数据库里的记录重新生成侧栏列表 local-projects 和顺序 project-order,有的还一并补上 ID 映射和会话归属。#42739、#58397、#54538、#59895 里有 10 名用户确认有效,Windows 和 macOS 都有。他们共同的前提是:
- 应用彻底退出,后台进程也已结束;
- 先整份备份
.codex; - 只改状态文件,不改 SQLite 数据库。
GitHub 上有几个社区写的工具声称自动完成这一步,例如 adriariu/codex-project-recovery、Swih/codex-sidebar-repair。运行前没法确认它们会改动哪些文件,所以不建议直接运行;确实要用,先读懂代码,并只在备份副本上试。重建时也不要按会话的工作目录推断项目,有用户用这种办法推出 109 个"项目",数据库里实际只有 28 个。
设过 CODEX_HOME:先看应用读的是不是这个目录
如果你给 Codex 设过 CODEX_HOME 环境变量,应用读写的就是那个目录下的数据库和状态文件。#42739 里一名用户删掉这个变量后,项目立刻回来了。有意给不同账号设不同 CODEX_HOME 的,项目会分别登记在各自目录里,做法见 Codex 限额会在同一台电脑的多个账号之间共享吗?官方边界与排查步骤。
哪些版本有人报告受影响:Windows 先对齐两套版本号
下表列的是 GitHub issue 里用户报告出问题时的版本。Windows 的 Microsoft Store 包版本和"关于"里的版本是两套号,比如包 26.1103.4239.0 就是 26.1103.32239。某个版本出现在表里,不等于这个版本的每台电脑都会出问题,也没有"某个版本之前都安全"这回事。
| 平台 | 有人报告的版本 |
|---|---|
| Windows | 26.707.72221(7 月 14 日)、26.810.7004.0(8 月 18 日)、26.901.4073.0 起的 9 月各版本、10 月到 11 月初的 26.1002 至 26.1029、11 月的 26.1103.3517.0 / 4239.0 / 7773.0、26.1103.60933、26.1104.2876.0(11 月 10 日) |
| macOS | 26.715.21425(7 月 17 日)、26.901.41600(9 月 5 日)、26.1029.61003(11 月 1 日)、26.1103.41825(11 月 7—9 日)、26.1103.60933(11 月 10 日) |
| Linux | 26.1103.32239(11 月 7 日,一例) |
从版本号看不出属于哪一类。几类原因出现的时间互相重叠:项目消失的报告从 7 月 14 日就有,状态文件被写坏最早见于 9 月 21 日(#46987),只有换账号这一类明显集中在 11 月 6 日以后的版本。有人报告修好的版本只有 26.1106.51428,而且只对应换账号这一类。
OpenAI 怎么回应:承认了换账号问题,其他几类还没有说法
截至 2026 年 11 月 12 日,OpenAI 在 GitHub 上只有一条员工回复,就是上文 dhruvgupta-oai 11 月 9 日在 #59895 的那句"修复会在周二的版本里发布",其余约 30 个相关 issue 都没有员工回复。OpenAI 开发者网站的 Codex 更新日志里,最后一条桌面版条目是 10 月 8 日的 26.1007,11 月 10 日、11 日都没有新条目,GitHub 发布页也只有命令行版本,26.1106.51428 查不到官方发布说明。
OpenAI 支持在官方社区的说法更笼统。11 月 7 日,在社区帖"Local projects disappear from sidebar after Windows desktop update"里,支持人员写道:"A similar issue with projects and chat groupings disappearing from the Windows app was identified and has since been mitigated."(Windows 版项目和会话分组消失的类似问题已经找到并缓解。)11 月 9 日另一帖也说已缓解,并让用户更新后彻底退出再打开;两次都没给版本号。更早的 9 月 7 日,有用户在社区里请求加一个官方的"修复或重建项目"选项,支持的回复是这个功能还没有时间表,会把需求转给产品团队。11 月 7 日之后仍不断有新报告,"已缓解"不等于每一类都修好了。
项目还在,只是会话少了或显示 "No chats"
项目行还在、下面却是空的(英文界面显示 "No chats"),或者只少了部分会话,多半不是项目消失,数据也没删。#21128 里用户拆包和抓包发现,桌面版启动时只请求最近 50 个会话,每个项目下默认只显示 5 条,搜索也只查已经加载的会话,更早的会话就不出现在侧栏里。有用户用 codex resume --all 打开丢失的会话再置顶,找回了一部分。这个 issue 的报告集中在 2026 年 5 月到 8 月的版本,最后一条评论是 9 月 27 日,没有员工回复,11 月的版本是否仍是 50 条的上限,公开信息里没有说明。
另一种情况是会话被归档了。按官方文档,归档的会话在"设置"里的"已归档的聊天",取消归档后会回到原来在侧栏的位置。
会话文件也没了:本地办法到头,给 OpenAI 发什么
只读检查第 4 步数出来的会话文件很少或为 0,打开旧会话报 no rollout found for thread id,说明会话正文真的不在了,重建侧栏列表只能恢复项目名,救不回对话内容。#58397 里有一名用户就是这样,数据库只剩 1 个项目、3 个会话;第三方网站 aident.ai 也引过一例,942 个会话文件缺了 934 个。这时只剩系统级备份(Time Machine、Windows 文件历史)里的 .codex 能找回内容。这个报错在发送消息时出现、会话文件是否缺失怎么查,见 Codex 提交消息时出错:原因在第二行,按报错原文逐类处理。
无论是哪一类,向 OpenAI 反馈时带上这些信息,对方才能分辨原因。反馈有两个入口:在桌面版输入框里键入 / 选择反馈,提交后会拿到一个会话 ID;或者在 openai/codex 的 GitHub issue 区先找同类 issue(换账号是 #59895,迁移是 #42739,状态文件损坏是 #58397)再补充。
- 平台和版本号,Windows 两套号都写;
- 消失前做了什么、大致时间,有没有异常关机;
- 日志里
projectCount=那一行和Failed to load global state前后几行; - 数据库里的项目数、侧栏列表的项目数、会话文件数;
- "最近"和搜索里还能不能打开旧会话。
官方文档提醒,分享日志前先看一遍,确认里面没有敏感信息,比如项目路径里的用户名和公司名。
Codex 项目消失的其他问题
重装 ChatGPT 桌面版能把项目找回来吗?
不能。项目数据库、状态文件和会话都在 .codex 文件夹里,不在应用本身;#58754 里有用户卸载重装(Microsoft Store 装不上,改用离线安装包)之后,项目依旧没有回来。重装前后都不要删 .codex。
项目恢复之后还会再丢吗?
有可能。截至 2026 年 11 月 12 日,#42739 等 issue 里有多名用户报告修好后再次消失,有人已经是第三次,11 月 10 日还有用户说反复出现。换账号这一类在 26.1106.51428 上有人报告修好,其他几类没有,所以保留一份最近的 .codex 备份,比任何修复办法都可靠。
参考来源11
本文引用的外部页面,按正文出现顺序排列。最后更新于 2026年11月12日。
参考来源11
本文引用的外部页面,按正文出现顺序排列。最后更新于 2026年11月12日。
- 1.openai/codex #54538github.com/openai/codex/issues/54538
- 2.#58397github.com/openai/codex/issues/58397
- 3.#59895github.com/openai/codex/issues/59895
- 4.#42739github.com/openai/codex/issues/42739
- 5.ChatGPT 桌面版官方故障排查文档learn.chatgpt.com/docs/reference/troubleshooting
- 6.#60541github.com/openai/codex/issues/60541
- 7.#60672github.com/openai/codex/issues/60672
- 8.OpenAI 开发者网站的 Codex 更新日志developers.openai.com/codex/changelog
- 9.社区帖"Local projects disappear from sidebar after Windows desktop update"community.openai.com/t/local-projects-disappear-from-sidebar-after-windows-desktop-update/1405156
- 10.#21128github.com/openai/codex/issues/21128
- 11.openai/codex 的 GitHub issue 区github.com/openai/codex/issues





