The model returned no content 的原因与对策——Claude 的报错信息,含义随“是谁写的”而变
用 Claude 的时候卡住了,把屏幕上出现的那句话原样拿去搜,却几乎什么都搜不到——这样的字符串是存在的。The model returned no content because the response was blocked by content filtering、The response was blocked by the provider's content filter、Streaming response ended before any complete data was received、Could not locate the Claude CLI on PATH、Connection to Claude's response was lost. Claude may still be working 这五条就是例子。它们的共同点是“明明是在用 Claude 时出现的,可翻 Claude 的资料也找不到(看上去是这样)”,理由很简单——写下你此刻屏幕上这句话的,未必是你以为的那个程序。本文不打算从零讲解每一种原因,而是作为一个入口:先判定这句话是谁写的,再把你送到正确的那篇文章去。首先把可能写出这句话的层分成四个:提供模型的后端、Claude Code 本体、启动它的 IDE 扩展或封装器、第三方客户端。在此基础上真去比对,五条里有两条作为条目就写在 Claude Code 官方的错误参考里。Streaming response ended… 的官方定义是“头返回了,可体里没有 Claude API 的消息”,并不是中途断掉的意思。Could not locate the Claude CLI on PATH 则被官方放进“Wrapper and IDE errors”这个独立的一章,也就是由启动方程序打印、而不是 Claude Code 自身的内容。另一方面,content filter 那两条属于第三方一侧的词汇,而且 OpenCode 的 Issue #35736 报告说,Vertex 的 404、套接字断开、真正的拒绝这三种完全不同的失败,全部以同一句“blocked by content filter”显示出来。三种里与字面相符的只有一种。GitHub 的官方文档也写明,使用 Claude 时输入与输出同样会经过 GitHub Copilot 的内容过滤器,所以你在用 Claude,并不代表拦下你的就是 Anthropic 的过滤器。剩下的一条,在官方错误参考和 Remote Control 的官方文档里都找不到这串字,没能确定出处,因此本文不点出名字,而是给出自己查明的四步。已经确定的与尚未确定的,用标签分开写。