Skip to main content

Incident · Staff

Anthropic (Aug-Sep 2025): three bugs degrade Claude

Real incident. Key points: sticky routing, accuracy in approximate top-k, and heterogeneous hardware.

15 min read · Incident on 2025-09, lasted · Source: Anthropic · Content reviewed on October 23, 2026

Short answer

Real incident. Key points: sticky routing, accuracy in approximate top-k, and heterogeneous hardware. Between August and early September, three infrastructure bugs intermittently degraded the quality of Claude's responses. The company states that it never reduces model quality due to demand, time of day, or server load, and attributes what users reported solely to infrastructure bugs.

01 · CONTEXT

One model on several platforms

Between August and early September, three infrastructure bugs intermittently degraded the quality of Claude's responses. The company states that it never reduces model quality due to demand, time of day, or server load, and attributes what users reported solely to infrastructure bugs.

Claude is served through the first-party API, Amazon Bedrock, and Google Cloud's Vertex AI, and runs on Trainium, NVIDIA GPUs, and TPUs. Each platform has its own characteristics and optimizations, but the goal is for users to receive responses of the same quality regardless of which platform serves the request.

  1. Claude reaches users through the first-party API and also through Amazon Bedrock and Google Cloud's Vertex AI.

    Architecture diagram: Claude served on several platforms and accelerators
    CLUsers
    NWService entry points
    NWRequest routing
    CPTrainium servers
    CPNVIDIA GPU servers
    CPTPU servers
  2. The same models run on Trainium, NVIDIA GPUs, and TPUs, each with its own characteristics and optimizations.

    Architecture diagram: Claude served on several platforms and accelerators
    CLUsers
    NWService entry points
    NWRequest routing
    CPTrainium serversTrainium
    CPNVIDIA GPU serversGPUs
    CPTPU serversTPUs
  3. A routing layer directs each request to the appropriate set of servers. The design is a simplification, but this is the layer where the first bug will appear.

    Architecture diagram: Claude served on several platforms and accelerators
    CLUsers
    NWService entry points
    NWRequest routingroteamento
    CPTrainium servers
    CPNVIDIA GPU servers
    CPTPU servers

02 · TIMELINE

Three overlapping bugs, a single symptom

The first bug appeared on August 5 and affected about 0.8% of requests to Sonnet 4. Two others came from deployments on August 25 and 26. On August 29, a change to load balancing began to increase the affected traffic. The status page described the first issue as affecting a small share of Sonnet 4 requests, from Aug 5 to Sep 4, with increasing impact from Aug 29.

When it startedWhat it wasWhere it appeared
Context routingOn August 5Requests sent to servers configured for long contextFirst-party API, Amazon Bedrock, and Vertex AI
Output corruptionOn August 25Wrong configuration on the API's TPU serversAPI only; third-party platforms were not affected
Approximate top-kLate AugustToken selection code that triggered a latent compiler bugAPI only; third-party platforms were not affected

03 · ROUTING BUG

Load balancing and sticky routing

On August 5, some Sonnet 4 requests were routed to servers configured for the upcoming 1M-token context window, and at first this affected 0.8% of requests. On August 29, a routine change to load balancing unintentionally increased the number of short-context requests sent to those servers. At the worst hour, on August 31, 16% of Sonnet 4 requests were affected.

Routing was sticky: once a request was served by the wrong server, subsequent messages tended to land on the same server. About 30% of Claude Code users who made requests in the period had at least one message routed to the wrong type of server.

  1. A short-context request should be directed to the set of short-context servers.

    Architecture diagram: Routing by context size
    CLClient
    NWLoad balancer
    CPShort-context serverscorrect destination
    CPLong-context servers
  2. A routing error sent some short requests to the servers configured for long context.

    Architecture diagram: Routing by context size
    CLClient
    NWLoad balancerwrong routing
    CPShort-context servers
    CPLong-context serversmisdirected traffic
  3. A routine load balancing change, on August 29, unintentionally increased the number of short requests sent to the long-context servers.

    Architecture diagram: Routing by context size
    CLClient
    NWLoad balancerbalancing change
    CPShort-context servers
    CPLong-context servers
  4. Because routing was sticky, anyone who landed on the wrong server tended to stay on it in subsequent messages.

    Architecture diagram: Routing by context size
    CLClient
    NWLoad balancer
    CPShort-context servers
    CPLong-context serversstuck conversation
  5. The fix made short and long requests return to the correct sets of servers.

    Architecture diagram: Routing by context size
    CLClient
    NWLoad balancerfixed logic
    CPShort-context serverscorrect destination
    CPLong-context servers

04 · OUTPUT AND TOP-K

Numerical precision and the TPU compiler

On August 25, a misconfiguration on the API's TPU servers caused an error in token generation. A runtime performance optimization sometimes assigned high probability to tokens that should have been rare, such as Thai or Chinese characters in responses to English prompts, or obvious syntax errors in code. The change was rolled back on September 2, and the company added tests to detect unexpected characters to the deployment process.

The third bug came from a change to the token selection code, which triggered a latent bug in the XLA:TPU compiler. It was confirmed for Haiku 3.5, and the company believes it may have affected some of Sonnet 4 and Opus 3 on the API. Third-party platforms were not affected.

To understand the mechanism: Claude computes probabilities for each possible next word and draws a sample from that distribution, considering only the words whose cumulative probability reaches a threshold (top-p). The models are partitioned across dozens of chips or more, and sorting those probabilities is a distributed sort.

  1. At each token, the model computes probabilities for the possible next words and the sampling step draws one of them.

    Architecture diagram: Token generation and sampling on TPU
    CLClient
    NWClaude API
    CPTPU model servers
    CPSampling step
  2. Top-p restricts the draw to the words whose cumulative probability reaches a threshold, avoiding nonsensical outputs.

    Architecture diagram: Token generation and sampling on TPU
    CLClient
    NWClaude API
    CPTPU model servers
    CPSampling steptop-p
  3. The compiler can convert operations to higher precision, and operations that should agree on the most likely token were running at different precision levels.

    Architecture diagram: Token generation and sampling on TPU
    CLClient
    NWClaude API
    CPTPU model serversdifferent precisions
    CPSampling step
  4. Approximate top-k, used for performance, sometimes returned wrong results and could drop the most likely token, only for certain batch sizes and configurations.

    Architecture diagram: Token generation and sampling on TPU
    CLClient
    NWClaude API
    CPTPU model servers
    CPSampling stepapproximate top-k
  5. The fix replaced approximate top-k with exact top-k and standardized other operations at higher precision, accepting a small efficiency cost.

    Architecture diagram: Token generation and sampling on TPU
    CLClient
    NWClaude API
    CPTPU model servers
    CPSampling stepexact top-k

In December 2024, the team had seen the TPU implementation sometimes drop the most likely token at temperature zero and applied a workaround. On August 26, a rewrite of the sampling code to fix the precision problems removed that workaround, since the root cause was believed to be resolved. The workaround had been masking the deeper approximate top-k bug.

The rollback of the top-k bug came per model: Haiku 3.5 was rolled back on September 4 and Opus 3, after consistent reports, on September 12. Sonnet 4 was also rolled back as a precaution, although the company could not reproduce the bug in it.

05 · DETECTION AND CHANGES

Why it took so long to see the problem

Validation usually combined benchmarks, safety evaluations, and performance metrics, plus manual checks and deployment to small canary groups. Even so, the evaluations did not catch the reported degradation, partly because Claude often recovers well from isolated mistakes, and each bug produced different symptoms on different platforms and at different rates.

Internal privacy and security controls limit engineers' access to interactions not reported as feedback. The company admits it relied too heavily on noisy evaluations and had no clear way to link the reports to recent changes.

Announced changeGap it addresses
More sensitive evaluationsDistinguish more reliably between working and broken implementationsOver-reliance on noisy evaluations
Evaluations in productionRun continuously on real production systemsProblems such as the context window balancing error
Debugging toolsDebug community feedback without sacrificing privacyLimited access to interactions not reported as feedback

Frequently asked questions

What is Anthropic (Aug-Sep 2025): three bugs degrade Claude?

Real incident. Key points: sticky routing, accuracy in approximate top-k, and heterogeneous hardware.

What does the Anthropic (Aug-Sep 2025): three bugs degrade Claude design cover?

It is organized in these sections: One model on several platforms, Three overlapping bugs, a single symptom, Load balancing and sticky routing, Numerical precision and the TPU compiler, and Why it took so long to see the problem.

How long is Anthropic (Aug-Sep 2025): three bugs degrade Claude and what level is it?

It takes about 15 minutes to read and is rated Staff level.

Now design it yourself

Run this case as an interview in the System Design school: you make the decisions, the tutor challenges them and you see how your design scores.