Error running remote compact task: Fatal error Codex
Quick fix
在 Codex 设置中关闭远程上下文压缩(Remote Compaction),改用本地压缩即可临时绕过此协议转换缺陷。
Symptom
Section titled “Symptom”Error running remote compact task: Fatal error: remote compaction v2 expected exactly one compaction output item, got 0 from 2 output itemsCodex 的 Responses API 在处理上下文压缩时,严格期望响应中包含且仅包含一个 `type: "compaction"` 的 output item。当使用 DeepSeek、MiniMax 等第三方 Chat Completions 供应商时,cc-switch 会将请求转换并转发,但第三方 API 仅返回普通的摘要文本。
目前 cc-switch 在将 Chat Completions 响应转回 Responses 格式时,只会生成普通的 `message` 类型 item,无法生成 Codex 所需的 `compaction` 特殊类型 item,导致解析失败。此外,部分压缩请求可能绕过翻译管道直接请求 `/responses` 端点,从而引发 404 错误。
在 Codex 客户端的设置界面中,找到并关闭“远程上下文压缩”(Remote Compaction)选项。
确保开启本地压缩(Local Compaction)功能,让 Codex 在本地处理上下文缩减,从而绕过 cc-switch 的远程协议转换缺陷。
Affected Versions
Section titled “Affected Versions”ToolCodex
Version3.16.2 - 3.19.1
PlatformsWindowsmacOS
Source Issues
Section titled “Source Issues”本页汇总自 4 个真实 issue
- 为什么普通对话正常,只有触发上下文压缩时才报错?
- 普通对话的响应可以自然映射为 Responses API 的 `message` 类型,而上下文压缩需要特殊的 `compaction` 类型 output item,目前 cc-switch 尚未实现该特殊语义的本地转换与包装。
- 有没有办法在不关闭远程压缩的情况下解决?
- 目前的临时绕过方案只能是关闭远程压缩。若要彻底解决,需等待 cc-switch 官方更新以正确包装 `compaction` item,或改用原生支持 Responses API 的官方端点。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。