SAN FRANCISCO — Developer Michael Hood logged a specific failure on July 16, 2026, around 3:00 p.m. UTC: Anthropic's API began returning thinking blocks with empty content—a signature field and nothing else—for both Claude Opus 4.8 and Sonnet 5, even when the display parameter was explicitly set to "summarized." Hood confirmed the behavior persisted even when he injected the parameter directly into raw API request bodies, ruling out a client-side configuration error.

The problem matters financially because Anthropic's billing policy does not tie charges to what a developer actually receives. The company's documentation says: "You are charged for all thinking tokens generated, even when collapsed or redacted." A thinking summary costs the same as full output. A blank block costs the same as a complete one.

The thinking feature works by giving Claude a pool of additional tokens—billed at the output-token rate—to reason through a problem before producing a final response. What developers see is not the raw chain of thought but a summarized version of that internal process. The display field in the thinking configuration controls that summary: "summarized" returns it, while "omitted," the default on Anthropic's newest models, returns thinking blocks with an empty thinking field by design. The distinction between intentional omission and a bug matters—and it is precisely what is currently unclear.

A separate anonymous bug report claims that thinking summaries are being truncated mid-stream while billing is not adjusted downward to match. The claim—that customers are paying for text silently dropped in transit—runs into Anthropic's documented policy. The company charges for all thinking tokens generated at the model layer, not for what arrives at the client. Whether a bug that cuts the summary stream short would entitle a developer to any billing adjustment is an open question Anthropic has not publicly answered.

Beyond the empty-block issue, Anthropic's API has also been terminating data streams during long-running thinking sessions. Developer Hector Bernstorff identified client-side defects tied to that streaming problem. The root cause, according to information shared with The Register, involves network-behavior tuning—specifically how systems decide to terminate or retry requests that run long. Work to balance that behavior is ongoing.

At least seven other related API bug reports have surfaced around the same cluster of issues. The empty thinking block problem is under investigation, but Anthropic has said it does not appear to be a broad, ongoing failure. One interpretation is that the behavior stems from internal tests Anthropic ran that changed how thinking summaries are displayed—meaning developers caught a test artifact, not a production regression.

Anthropicn's own platform documentation adds context that some developers may have missed. The newest models default to "omitted" for thinking display, not "summarized." That means a developer who does not explicitly set the display field will receive empty thinking blocks by design, not by accident. The charge still applies. Anthropic advises developers who want to reduce spending on thinking to lower their token budget setting or turn the feature off entirely.

Similar behavior—missing thinking blocks—has been reported in Claude Code for VS Code, suggesting the issue is not limited to direct API calls. A separate discussion on Reddit documented that a Feb. 12, 2026, update introduced a beta header called redact-thinking-2026-02-12 to Claude Code, which suppresses all visible reasoning in the terminal. The model still runs its reasoning process and the cost still accrues; the output simply does not appear to the develo. Thinking tokens are billed as output tokens. They also count against the max_tokens limit alongside the actual response text. A developer enabling thinking on a high-volume workload pays for two layers of output—the reasoning and the reply—with the reasoning invisible by default on the newest models and subject to the billing policy regardless of what is or is not returned to the client. For teams running Claude at scale on code generation or analysis tasks, that is a meaningful cost driver with limited visibility.