Codex 报错 Error creating task: Timeout
这个报错发生在新任务或新线程的创建阶段,不等于模型回答超时。先用已有任务做对照,再检查是否有失效的 MCP 服务阻塞启动;不要先删除 .codex、数据库或历史任务。
错误摘要
Codex 报 Error creating task: Timeout、Task creation timeout 或 Unable to start task 时,先测试已有任务,再临时禁用无法连接或路径失效的 MCP 服务并完全重启桌面端。
Codex Desktop 新建任务时可能一直停在 Creating task 或 Thinking,最后显示:
Error creating task
Timeout
也可能显示:
Task creation timeout
Unable to start task
这个错误是什么意思
它表示 Codex 没能在桌面端规定的等待时间内完成新任务或新线程初始化。这个阶段发生在模型正式回答之前,所以它和长提示词、推理强度或模型生成速度不是一回事。
公开 issue 中有一个很有辨识度的现象:同一账号、同一网络下,已有项目对话仍能继续,只有新项目的第一个任务失败。这时应优先检查新线程启动链路,而不是反复换模型。
报错旁边的 no-active-thread-... 通常是 Feedback ID。它适合提交给官方定位,但不能说明具体根因。
常见原因
- 全局 MCP 服务无法连接。Codex 创建线程时会初始化 MCP;某个本地端口没有服务监听,可能让启动一直等待。
- MCP 命令路径已经失效。桌面端更新后,配置仍指向旧的运行时或不存在的可执行文件,也可能阻塞初始化。
- MCP OAuth 或密钥存储响应过慢。它会进一步消耗新任务创建的等待时间。
- Codex Desktop 当前版本存在任务创建回归。如果没有配置 MCP,或禁用失效 MCP 后仍复现,就不能继续把问题归咎于本地配置。
GitHub #33288 的报告者确认,两个失效的可选 MCP 阻塞了 thread/start;禁用它们并完全重启桌面端后,新任务恢复正常。这是已验证案例,但不是所有 Timeout 的唯一原因。
怎么解决
- 先测试一个已有任务。 如果已有对话能继续、只有新建任务失败,说明账号、模型、文件夹权限和基础网络大概率没有整体失效。
- 检查 MCP 配置。 打开
~/.codex/config.toml,找出已经停服的本地地址、不存在的命令路径或不再使用的 MCP 服务。 - 只禁用确认失效的 MCP。 保留原配置,给对应项加上
enabled = false,不要直接清空整个配置文件。
[mcp_servers.example]
enabled = false
- 完全退出 Codex/ChatGPT Desktop 后重新打开。 只关闭当前任务或切换项目不足以重建完整启动链路。
- 用最小提示创建新任务。 例如输入“只回复 READY,不要修改文件”,确认任务能否成功建立。
- 仍然失败时更新到最新稳定版并提交反馈。 附上桌面端版本、操作系统、完整报错、Feedback ID,以及“已有任务是否正常、禁用 MCP 后是否变化”这两个对照结果。
不要先删除 ~/.codex、SQLite 数据库、rollout 文件或历史任务。公开案例不需要清空这些数据就能恢复,盲删反而可能造成任务记录丢失。
如果你没有配置 MCP
没有任何 MCP 服务,或者全部禁用后仍然出现 Error creating task: Timeout,就更像客户端或服务端的新任务初始化问题。此时重复重装、改项目路径、切换 Sol/Terra 或放大 Full Access 权限,未必能改变结果。
保留一个可重复的最小案例,记录出错时间和 Feedback ID,然后跟踪官方 issue。已有任务可以继续时,先用旧任务处理紧急工作,但不要把它当作已经修复。
一句话结论
Error creating task: Timeout 先查新线程启动时加载的失效 MCP;如果没有 MCP 或禁用后仍失败,就按 Codex Desktop 回归提交证据,不要靠删除本地数据碰运气。