The model returned no content — Causes and Fixes: a Claude Error Message Means Something Different Depending on Who Wrote It
You hit a wall while using Claude, you search the exact message that appeared, and almost nothing comes back. Five strings behave this way: 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, and Connection to Claude's response was lost. Claude may still be working. What they share is that they appeared while you were using Claude, yet searching Claude's own material seems to turn up nothing, and the reason is simple: the program that wrote the message on your screen is not necessarily the one you think it is. This article does not explain each individual cause from scratch. It is an entrance hall that identifies who wrote the message and routes you to the right article. It first splits the possible writers into four layers, the backend that serves the model, Claude Code itself, the launching IDE extension or wrapper, and third-party clients, and then does the matching. Two of the five turn out to be entries in Claude Code's official error reference. The official definition of the streaming message is that the headers came back but the body held no Claude API message, which is not a mid-way cut at all, and reading it as a dropped connection sends you down the wrong path. Could not locate the Claude CLI on PATH sits in a separate chapter, Wrapper and IDE errors, described as printed by the launching program rather than by Claude Code, and the real display string can be four sentences long where the official heading is one, which is why searching it returns nothing. The two content-filter strings, meanwhile, are third-party vocabulary, and OpenCode Issue #35736 reports that three completely separate failures, a Vertex 404, a socket drop, and a genuine refusal, all surface as the same blocked by content filter sentence. The wording is correct for only one of the three, so believing it and softening your prompt will never fix a misconfigured model ID. GitHub official documentation also states that input prompts and output completions pass through GitHub Copilot content filters when Claude is used, so using Claude does not mean Anthropic filtering is what stopped you. The remaining string appears in neither the official error reference nor the Remote Control documentation, so its source could not be identified; no tool is named for it, and four steps for tracing it in your own environment are given instead. What is settled and what is not is labelled throughout.