Skip to content

[Bug] DeepSeek V4 Flash Responses route stalls after tool calls #875

Description

@Michael-Han0608

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

  1. Use OpenCodex with the official DeepSeek API and select deepseek/deepseek-v4-flash.
  2. Ensure the model is routed through the native Responses adapter.
  3. Start a turn that causes the model to return one or more tool calls.
  4. 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.
  5. 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

  • I searched existing issues and documentation.
  • I removed secrets, tokens, account details, request credentials, and personal data.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtoolstool_calls, MCP, web-search / sidecar tools

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions