跳转到内容

No tool output found for function call — Codex

Quick fix

等待 CC Switch 修复发布;当前可避免在同一轮并行运行图片工具与其他工具,防止媒体消息打断工具结果块。

报错原文
cause: No tool output found for function call call_3IQasYyv9SLyKCyMsmDNgPS5.

在 Windows 的 CC Switch 3.20.3 中,Codex 同一轮并行调用 `view_image` 与其他工具时,代理的 media-lift 可能把 synthetic `user` 媒体消息插入尚未结束的 tool 结果批次。严格的 Chat→Responses 转换或上游会将插入后的 tool output 视为未配对,从而返回 HTTP 400。

该问题也可由批次中任意非 tool 消息触发,例如 PostToolUse 钩子注入的 `developer` additionalContext;并非仅与 `<image_resize_notice>` 有关。PR #7439 提出了保持同批 tool 消息连续、将夹入消息移至 tool block 后、补齐缺失输出占位并降级孤儿 tool 消息的修复,但该 PR 尚未合并,且没有包含修复的发布版本。

  1. 在修复版本发布前,避免让 Codex 在同一轮并行调用中混用 `view_image` 等图片结果工具和其他工具。

  2. 如使用 PostToolUse 钩子或会注入 `developer` additionalContext 的机制,避免在当前 assistant 的全部 tool_calls 都已有对应 tool 输出前插入任何非 tool 消息。

  3. 等待包含 PR #7439 的 CC Switch 发布版本;该修复会归一化 Chat tool 消息顺序,使同批 tool 消息保持连续。

  4. 不要通过手改 `~/.codex/sessions/.../rollout-*.jsonl` 作为通用恢复手段;启用分页历史时,这会导致 `invalid paginated history lineage`,使线程无法打开。

ToolCodex
Version3.20.3(受影响;尚无包含修复的发布版本)
PlatformsWindows
除了 `<image_resize_notice>`,还有什么会触发这次提前 flush?
批次内任意非 tool 消息都可能触发,包括本机 PostToolUse 钩子注入的 `developer` additionalContext。
删除本地 rollout 中卡住的调用三元组后能恢复吗?
在开启分页历史的环境中不建议这样做;`thread_history_1.sqlite` 依赖 rollout 字节偏移索引,手改后会报 `invalid paginated history lineage`,线程无法打开。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。