Skip to main content
TechnologyApr 25, 2026· 5 min read

Anthropic Resets Usage Limits After Confirming: Yes, Claude Code Did Actually Deteriorate

Anthropic has published a detailed analysis to explain why Claude Code has shown a perceived drop in quality over the past month. Contrary to speculation in some communities, this is not a deliberate degradation of the models or an issue with the API: the causes are three separate bugs, introduced sequentially between March 4 and April 16, 2026, which affected only Claude Code, the Claude Agent SDK, and Claude Cowork. All three were fixed by April 20 with version v2.1.116.

Thanks to the entire Claude community for giving feedback and continuing to build with us.

Read the full post-mortem here: link
— ClaudeDevs (@ClaudeDevs)
April 23, 2026

Bug 1: Default Reasoning Effort Lowered

On March 4, Anthropic changed Claude Code's default reasoning level from "high" to "medium." The decision was based on a technical reason: in "high" mode, Claude Opus 4.6 occasionally tended to reason for too long, enough to make the interface seem frozen and to generate excessive latencies. Internally, evaluation metrics showed that "medium" provided slightly lower intelligence with significantly reduced latency on most tasks, without the latency spikes of "high" mode and with lower token consumption.

The change was communicated to users through an in-product dialog, but community response was stark: reports of "less intelligent Claude" quickly accumulated. Anthropic responded with UI adjustments to make the current setting more visible (startup alerts, an inline selector, restoring the "ultrathink" command), but most users remained on the default "medium." On April 7, the decision was reversed: today, the default is "xhigh" for Opus 4.7 and "high" for all other models.

Bug 2: Caching that Erased Reasoning Memory

On March 26, what turned out to be the most insidious bug of the three was introduced. The goal was to optimize the cost of resuming inactive sessions lasting over an hour: since those sessions would have generated a cache miss anyway, the oldest thinking sections could have been eliminated before resending the request to the API, reducing uncached tokens. The mechanism used the header "clear_thinking_20251015" with the parameter "keep:1."

The bug lay in the implementation: instead of performing the cleanup only once when resuming the idle session, the code continued to do so at every turn for the entire duration of the session. The result was that Claude progressively lost memory of its reasoning: it continued to perform tool calls and produce code but without remembering why it had made previous decisions. This explained reports of repetitive behavior, inconsistent tool choices, and apparent forgetfulness. An immediately non-obvious side effect: the ongoing cache misses accelerated the consumption of usage limits, explaining separate reports of credits running out faster than normal.

Reproducing the problem was anything but trivial. Two independent internal experiments masked the bug: one related to server-side message queuing, the other tied to a change in how thinking was displayed in CLI sessions. The bug was at the intersection of three systems (Claude Code's context management, Anthropic API, extended thinking) and had passed both manual and automated code reviews, unit tests, end-to-end tests, and internal beta testing. The fix arrived on April 10, in version v2.1.101. As a retroactive check, Anthropic conducted a code review of the incriminated pull request using Opus 4.7: the model identified the bug, unlike Opus 4.6. This result led to the decision to expand support to additional repositories as context for automated code reviews.

Bug 3: The System Prompt that Choked Responses

The third issue emerged on April 16, coinciding with the launch of Claude Opus 4.7. As documented by Anthropic at the launch, Opus 4.7 tends to be more verbose than its predecessors, a feature that improves performance on complex tasks but generates more output tokens. To manage this verbosity, the team added an explicit instruction to Claude Code's system prompt: "Length limits: keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless the task requires more detail."

After weeks of internal testing with no regressions in the available evaluations, the change was deemed safe. But an analysis using ablation techniques, systematically removing individual lines of the prompt to measure impact, conducted on a broader suite of evaluations found a 3% drop in quality on both Opus 4.6 and Opus 4.7. The rollback was immediate, on April 20, and was incorporated into the release of version v2.1.116. The impact of this bug also affected Sonnet 4.6, in addition to the two Opus models.

Why the Three Bugs Were Perceived as a Single Issue

Since each of the three changes affected a different portion of traffic at different times, the aggregate effect perceived by users resembled broad and inconsistent degradation. The first reports came as early as early March, but were difficult to distinguish from normal variability in feedback. Neither internal testing sessions nor standard evaluations initially replicated the issues: the lack of reproducibility lengthened diagnostic times.

Announced Corrective Measures

On the preventive side, Anthropic announced that a larger share of its internal staff will use the public build of Claude Code, rather than dedicated test versions. Controls on the system prompt will become stricter: every change will go through a model evaluation suite, systematic ablation, extended soak periods, and gradual rollouts. The file CLAUDE.md will be updated to explicitly isolate model-specific changes. The internal Code Review tool will receive support for additional repositories as context, and this improved version is also slated for release to users. For direct communications with developers, Anthropic has opened the @ClaudeDevs account on X, with parallel updates on GitHub.

As a concrete gesture towards affected users, starting April 23, usage limits have been reset for all subscribers.