Thanks for the report. Include a minimal reproduction and exact environment details so we can confirm and fix the problem quickly.
Client or integration
Codex App
Area
Tools / MCP / web search
Summary
DeepSeek V4 Flash requests routed through the native Responses adapter can stall after tool calls. The upstream request returns HTTP 200 and non-zero output/reasoning tokens, but OpenCodex does not continue with the corresponding tool outputs, so no final visible answer is produced.
Plain-text turns without tools can complete normally. DeepSeek V4 Pro through the openai-chat route works normally under the same local setup.
Update: reproduced on OpenCodex 2.10.0
The same behavior remains reproducible after upgrading to OpenCodex 2.10.0:
- plain-text turns may complete normally;
- tool calls can be generated and executed;
- the upstream DeepSeek Responses request returns HTTP 200 with non-zero output/reasoning tokens;
- no corresponding
function_call_output or follow-up Responses request is observed for the same turn;
- Codex App receives no final visible answer and the turn stalls.
The v2.10.0 routing change does not appear to address this continuation failure. Codex-originated requests still use the native Responses path, so the remaining defect appears to be in the Responses tool-call continuation, event handoff, or reasoning-history replay rather than initial model routing.
Reproduction
- Use OpenCodex with the official DeepSeek API and select
deepseek/deepseek-v4-flash.
- Ensure the model is routed through the native Responses adapter.
- Start a turn that causes the model to return one or more tool calls.
- Observe that the tool calls may complete, but no corresponding
function_call_output or follow-up request is sent for the same conversation, and no final assistant answer appears.
- A plain-text turn without tools can complete normally. DeepSeek V4 Pro through the
openai-chat route does not reproduce the problem.
The exact trigger is not yet confirmed; it may involve the native Responses event handoff, multiple tool calls, or reasoning-history replay.
Version
Originally reproduced on OpenCodex 2.9.1; reproduced again on OpenCodex 2.10.0.
Operating system
macOS
Provider and model
Official DeepSeek API / deepseek/deepseek-v4-flash
Logs or error output
Relevant local usage records:
ocx-msbd27ow-17: HTTP 200, output tokens 568, reasoning tokens 359
ocx-msbdeyhv-1v: HTTP 200, output tokens 401, reasoning tokens 215
ocx-msbdfnwj-1x: HTTP 200, output tokens 113, reasoning tokens 36
The first two responses contained two completed exec_command function calls, but no corresponding function_call_output or follow-up request was observed for the same conversation.
service_tier was default; no priority, 400, or 502 error was recorded.
Screenshots and supporting files
The issue was reproduced three times after a long processing period with no visible output. Local usage records are available above.
Redacted configuration
The relevant setup uses the official DeepSeek provider, with deepseek/deepseek-v4-flash routed through the native Responses adapter. No secrets or credentials are included.
The current Responses adapter appears to sanitize reasoning.content for all Responses providers. DeepSeek's Responses API supports plain-text reasoning_text input, so this may also affect subsequent tool-call replay. This observation is not yet confirmed as the primary trigger.
Checks
References
Thanks for the report. Include a minimal reproduction and exact environment details so we can confirm and fix the problem quickly.
Client or integration
Codex App
Area
Tools / MCP / web search
Summary
DeepSeek V4 Flash requests routed through the native Responses adapter can stall after tool calls. The upstream request returns HTTP 200 and non-zero output/reasoning tokens, but OpenCodex does not continue with the corresponding tool outputs, so no final visible answer is produced.
Plain-text turns without tools can complete normally. DeepSeek V4 Pro through the
openai-chatroute works normally under the same local setup.Update: reproduced on OpenCodex 2.10.0
The same behavior remains reproducible after upgrading to OpenCodex 2.10.0:
function_call_outputor follow-up Responses request is observed for the same turn;The v2.10.0 routing change does not appear to address this continuation failure. Codex-originated requests still use the native Responses path, so the remaining defect appears to be in the Responses tool-call continuation, event handoff, or reasoning-history replay rather than initial model routing.
Reproduction
deepseek/deepseek-v4-flash.function_call_outputor follow-up request is sent for the same conversation, and no final assistant answer appears.openai-chatroute does not reproduce the problem.The exact trigger is not yet confirmed; it may involve the native Responses event handoff, multiple tool calls, or reasoning-history replay.
Version
Originally reproduced on OpenCodex 2.9.1; reproduced again on OpenCodex 2.10.0.
Operating system
macOS
Provider and model
Official DeepSeek API /
deepseek/deepseek-v4-flashLogs or error output
Relevant local usage records:
ocx-msbd27ow-17: HTTP 200, output tokens 568, reasoning tokens 359ocx-msbdeyhv-1v: HTTP 200, output tokens 401, reasoning tokens 215ocx-msbdfnwj-1x: HTTP 200, output tokens 113, reasoning tokens 36The first two responses contained two completed
exec_commandfunction calls, but no correspondingfunction_call_outputor follow-up request was observed for the same conversation.service_tierwasdefault; nopriority, 400, or 502 error was recorded.Screenshots and supporting files
The issue was reproduced three times after a long processing period with no visible output. Local usage records are available above.
Redacted configuration
The relevant setup uses the official DeepSeek provider, with
deepseek/deepseek-v4-flashrouted through the native Responses adapter. No secrets or credentials are included.The current Responses adapter appears to sanitize
reasoning.contentfor all Responses providers. DeepSeek's Responses API supports plain-textreasoning_textinput, so this may also affect subsequent tool-call replay. This observation is not yet confirmed as the primary trigger.Checks
References