Fix the n8n DeepSeek reasoning_content 400 Error
The DeepSeek AI Agent 400 is a field n8n drops between turns - here are three confirmed workarounds while issue #29119 stays open.
TL;DR: n8n's DeepSeek Chat Model node strips reasoning_content on multi-turn tool calls, so a thinking-mode model returns 400 "reasoning_content must be passed back to the API" - disable reasoning mode or route DeepSeek through another node.
This hits any n8n AI Agent that uses a DeepSeek model with thinking enabled - deepseek-v4-flash, deepseek-chat, or deepseek-reasoner - the moment the agent calls a tool. The first turn works; the follow-up request fails with 400: The reasoning_content in the thinking mode must be passed back to the API. The bug is tracked in n8n issue #29119 and is still open, so this is about working around it, not waiting for a node update.
What causes the DeepSeek "reasoning_content must be passed back" 400 in n8n?
Since DeepSeek V3.2 (December 2025), thinking-mode models return two things in an assistant message: the tool_calls the model wants to make and a reasoning_content field holding its chain of thought. DeepSeek's API requires that when you send the conversation back on the next turn, you include that reasoning_content exactly as received.
n8n's DeepSeek Chat Model node does not. It keeps tool_calls but drops reasoning_content when it rebuilds the message history for the follow-up request. DeepSeek sees a thinking-mode assistant turn with no reasoning attached, rejects the request, and returns the 400. Nothing is wrong with your prompt, your credentials, or the tool - the node is discarding a field the API treats as mandatory.

Why does it only happen with tools and thinking mode?
Two conditions have to line up. Thinking mode is what makes DeepSeek emit reasoning_content in the first place; a plain chat model that does not reason never produces the field, so there is nothing to lose. A tool call is what forces the multi-turn round trip: the agent gets the model's first response, runs the tool, and sends the whole history back for a second turn. That second send is where n8n omits the field.
So a single-shot DeepSeek prompt with no tools never trips it, and a non-reasoning model with tools never trips it. You need a reasoning model and a tool, which is exactly the normal shape of an AI Agent. This is a different failure from an agent not calling its tools at all - here the tool call is made and the crash comes on the turn after.
How do you fix the n8n DeepSeek reasoning_content 400?
Because the defect is in the node and there is no official patch yet, the fixes are workarounds. Three are confirmed in the issue thread:
- Disable reasoning on the DeepSeek node. Select the "no reasoning" (non-thinking) mode on the DeepSeek Chat Model. With no
reasoning_contentemitted, the mandatory-resend rule never applies and the 400 disappears. You lose the model's explicit chain of thought, which is the trade. - Route DeepSeek through the Anthropic Chat Model node. Swap the DeepSeek Chat Model node for an Anthropic Chat Model node pointed at a DeepSeek-compatible base URL. That node preserves the message fields DeepSeek needs, so thinking mode keeps working.
- Use the Alibaba Cloud nodes. Call DeepSeek through Alibaba Cloud's n8n nodes instead of the native DeepSeek node. It is a different integration path that does not strip the field.
All three sidestep the native node's field-dropping bug. None requires editing n8n source, and each is reversible once issue #29119 lands a fix. If you keep a running list of platform quirks like this, the Automation Error Index catalogs sibling n8n model-node failures worth knowing before you build.

Which workaround should you pick?
It depends on whether you need the reasoning:
- Do not need visible reasoning? Disable reasoning mode. It is the fastest fix, one dropdown, and it keeps you on the native node.
- Need thinking mode's reasoning quality? Use the Anthropic-node-with-base-URL route so
reasoning_contentis preserved end to end. - Already on Alibaba Cloud, or want the native reasoning without the Anthropic node? The Alibaba Cloud nodes are the cleanest path.
For most agents the first option is enough - many tool-using workflows do not surface the model's chain of thought to the user, so dropping thinking mode costs nothing visible. Reach for the node swaps only when the reasoning trace is part of the product. The same "pick the model node that fits the workflow" logic applies when you configure streaming from an n8n model node.
How do you confirm the workaround worked?
- Rebuild the agent with your chosen workaround (no-reasoning mode, Anthropic node, or Alibaba node).
- Give the agent a task that forces at least one tool call, so it does a multi-turn round trip.
- Confirm the second turn returns a normal answer instead of
400 reasoning_content. - Check the execution log: a clean run shows the tool result feeding back into a successful final message.
FAQ
Does this affect all DeepSeek models in n8n?
It affects DeepSeek models running in thinking mode with tools - deepseek-v4-flash, deepseek-chat, and deepseek-reasoner. A non-reasoning model, or any DeepSeek call without a tool, does not hit it.
Is there an official n8n fix yet?
No. As of mid-July 2026, issue #29119 is still open with no released patch. The node still drops reasoning_content, so a workaround is required.
Will disabling reasoning mode hurt answer quality?
It removes the model's explicit chain-of-thought step. For many tool-using agents that changes little in the final answer, but for tasks that lean on multi-step reasoning you may prefer the Anthropic-node or Alibaba-node route that keeps thinking mode on.
Why does the first turn work but the second fails?
The first request has no prior assistant message to resend, so nothing is dropped. The failure appears on the follow-up turn after a tool call, when n8n rebuilds the history and omits reasoning_content.
Can I just retry the request to get past the 400?
No. The error is deterministic: every follow-up turn omits the same field, so a retry fails identically. You have to change the model node or disable reasoning mode.