Mistral error “Type validation failed”

Mistral 在流式输出中把 delta.content 返回为包含 thinking 块的数组,而 n8n 的 OpenAI 兼容节点按字符串校验导致 "Type validation failed"。优先排查是否启用了模型的 reasoning/thinking 输出,并升级到包含修复的 n8

快速结论:Mistral 在流式输出中把 delta.content 返回为包含 thinking 块的数组,而 n8n 的 OpenAI 兼容节点按字符串校验导致 “Type validation failed”。优先排查是否启用了模型的 reasoning/thinking 输出,并升级到包含修复的 n8n 版本。

适用环境:n8n 2.36.8(Docker 自托管)、Node.js 24.18.1、PostgreSQL、企业版许可证。

最快修复方案:暂无确认的一步修复方案。Issue 中确认的修复已合入 PR #37875,可先升级到包含该修复的 n8n 版本(可优先尝试);临时规避可用 OpenRouter 中转,因为 OpenRouter 会剥离 thinking 块使校验通过。

注意事项:升级前需确认新版本是否仍兼容现有节点与工作流;关闭 reasoning 输出可能影响模型对复杂问题的回答质量;OpenRouter 方案仅在确实能用第三方中转时适用。

问题场景

用户在 n8n 2.36.8(Docker 自托管)中配置 Mistral 作为 AI 提供方,通过 OpenAI 兼容接口调用模型。当输入需要较多思考的较长 Prompt 时,流式响应中 Mistral 返回 thinking 块,n8n 节点在解析增量内容时报错。同一 Prompt 改用 OpenRouter 中转则正常。

报错原文

Type validation failed: Value: {"id":"0a2455cdc0d84c2c9b9e7cb1013436e9","object":"chat.completion.chunk","created":1788002702,"model":"zai-glm-5-2","choices":[{"index":0,"delta":{"index":0,"content":[{"type":"thinking","thinking":[{"type":"text","text":" existing Telegram credentials."}],"closed":true}]},"finish_reason":null,"logprobs":null}]}. Error message: [ { "code": "invalid_union", "errors": [ [ { "expected": "string", "code": "invalid_type", "path": [ "choices", 0, "delta", "content" ], "message": "Invalid input: expected string, received array" } ], [ { "expected": "object", "code": "invalid_type", "path": [ "error" ], "message": "Invalid input: expected object, received undefined" } ] ], "path": [], "message": "Invalid input" } ]

原因分析

可能原因:Mistral 的流式响应中,delta.content 字段被返回为数组,内部包含 type: thinking 的思考块对象;n8n 的 OpenAI 兼容节点在 2.36.8 版本中仅按字符串类型校验该字段,导致类型不匹配触发 invalid_union。OpenRouter 中转时会剥离 thinking 块,因此同一 Prompt 在 OpenRouter 下正常。

环境排查

  • n8n 版本是否为 2.36.8 或存在类似校验逻辑的版本
  • Mistral 模型是否开启了 reasoning/thinking 输出选项
  • 对比测试:同一 Prompt 经 OpenRouter 中转是否报错
  • 检查 n8n 中该节点的模型参数是否包含关闭 thinking 的开关

解决步骤

  1. 优先尝试升级 n8n 至包含 PR #37875 修复的版本,该 PR 已合入解决此问题
  2. 若暂时无法升级,检查 n8n 的 Mistral/OpenAI 兼容节点中是否有关闭 reasoning 或 thinking 输出的参数,尝试禁用后重试
  3. 若上述方案均不可行,可暂时改用 OpenRouter 作为中转(在 Mistral 官方修复前);注意 OpenRouter 返回格式可能与直接调用略有差异
  4. 若升级后仍报错,请提供新的执行日志与节点配置截图,确认是否还有其他兼容性问题

验证方法

用之前会触发报错的较长 Prompt(例如涉及 Telegram 凭据上下文的问题)重新执行,确认不再出现 Type validation failed 且对话能正常返回内容;同时在执行日志中检查流式响应是否包含 thinking 块数组。

参考来源

n8n-io/n8n #37352

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 22427

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注