Skip to content

missing field `call_id`, Codex heartbeat DeepSeek 400

Quick fix

Clean up orphaned heartbeat output entries when enabling requests through a proxy; this issue did not confirm that CC Switch has a fix.

Error output
cause: Failed to deserialize the JSON body into the target type:
input: missing field `call_id` at line 1 column 389282

Codex desktop heartbeat automation injects `function_call_output` entries without `call_id` into the conversation history. DeepSeek `/responses` requires that field and therefore returns 400; the history entry is sent again with subsequent requests in the same thread, causing repeated failures. Adding a random `call_id` may still cause an error because there is no matching `function_call`. Comments suggest that filtering such orphaned entries from proxy requests may provide a recovery path, but when closing the issue, maintainers said the problem originated on the client or provider side and CC Switch could not fix it at the root. No official fix was confirmed as released.

  1. Avoid continuing to use the affected thread; a new conversation works normally.

  2. If using a proxy implementation that supports request cleanup, filter orphaned `function_call_output` entries without a valid `call_id` before forwarding, then verify with a blank test task. Do not fabricate `call_id`; the reference implementation mentioned in the comments is only a third-party proxy boundary approach, and the issue did not confirm it as a built-in CC Switch fix.

ToolCodex 桌面版
Version3.19.1、3.20.1(报告环境;另有 3.20.3 验证)
PlatformsmacOS
Can connecting Codex using the official DeepSeek guide avoid this problem?
A user in the comments tried it and still encountered the same error; this issue does not establish that the official connection method avoids the problem.

This is an unofficial community wiki with no affiliation to the cc-switch authors or the project itself. Its content is compiled from the project's public GitHub issues. This site distributes no software.