# PIR-2026-0033 - Three overlapping Anthropic infrastructure bugs silently degrade Claude output for up to five weeks

- `id`: PIR-2026-0033
- `title`: Provider-side infra bugs (routing, TPU misconfig, compiler miscompilation) degrade Claude quality fleet-wide with no status-page signal
- `date_occurred`: 2025-08-05 (routing bug introduced; two further bugs introduced 2025-08-25)
- `date_detected`: late Aug 2025 via downstream user reports; provider-confirmed diagnosis early Sep 2025
- `date_disclosed`: 2025-09-17 (Anthropic engineering postmortem)
- `status`: corroborated (provider postmortem + widespread independent user reports)

### The agent
- `agent_description`: Not one agent - the shared model substrate. Claude served via Anthropic API, Claude Code, Bedrock, and Vertex; downstream coding agents were the most affected population.
- `operator_type`: enterprise (provider-side failure; thousands of downstream operators of every type)
- `autonomy_level`: n/a at the failure point (varies downstream; many autonomous-within-policy coding agents)
- `model_stack`: Claude Sonnet 4 (worst hit), Opus 4/4.1, Haiku 3.5; hosted
- `harness`: n/a - failure below the harness, in provider serving infrastructure

### Authority
- `authority_scope`: none held by the failing component itself; degraded outputs flowed into whatever authority each downstream agent held (code execution, comms)
- `funds_at_risk_usd`: unknown (distributed; never measured)
- `blast_radius`: fleet/systemic (v0.1 tier) - every deployment on affected models; ~30% of Claude Code users had at least one degraded request; Bedrock peak 0.18%, Vertex <0.0004%

### The failure
- `root_cause`: `model-update-regression` - primary; provider-side infrastructure regression rather than a training change; no contributing agent-side cause
- `failure_locus`: model-provider
- `mechanism`: Three independent bugs overlapped. (1) From Aug 5, short-context Sonnet 4 requests were misrouted to servers configured for the 1M-token context window; an Aug 29 load-balancer change amplified it, peaking at 16% of Sonnet 4 requests in the worst hour on Aug 31. (2) From Aug 25, a TPU misconfiguration corrupted token generation on Opus 4/4.1 and Sonnet 4 (first-party API only), occasionally emitting high-probability garbage - stray Thai/Chinese characters, code syntax errors. (3) Also from Aug 25, a deployment exposed a latent XLA:TPU approximate top-k miscompilation (mixed-precision), confirmed on Haiku 3.5, suspected on Sonnet 4/Opus 3. Degradation was nondeterministic, so downstream operators saw weeks of intermittently worse agent output with nothing on status pages and no upstream signal to correlate against.
- `adversary_present`: no
- `exploitation_status`: in-wild-malfunction (no adversary; v0.2 token closing the taxonomy gap this record flagged, see notes)

### Impact
- `severity`: degraded (service up throughout; quality silently down - the insidious profile)
- `direct_loss_usd`: unknown; `indirect_loss_usd`: unknown (distributed productivity and compute waste across ~5 weeks; never quantified by anyone)
- `downtime`: none - that is the point; availability monitoring showed green while quality failed
- `data_exposure`: none

### Detection and recovery
- `detected_by`: third-party (downstream users' reports; Anthropic states its own benchmarks "didn't capture the degradation" and privacy controls slowed investigation)
- `time_to_detect`: ~3-4 weeks from first introduction to confirmed diagnosis
- `time_to_recover`: rollbacks 2025-09-02 (TPU misconfig), 09-04 (routing fix deploy begins; Haiku top-k), 09-12 (Opus 3 top-k); routing fix fully deployed Sep 16-18
- `remediation`: routing logic fixed; TPU misconfig and miscompiled top-k rolled back
- `structural_fix`: continuous quality evals on production systems; evals redesigned to differentiate working vs broken implementations; privacy-preserving debug tooling; heavier weighting of user feedback channels
- `controls_that_worked`: provider rollback machinery (every fix was a rollback); the informal user-feedback channel was the only functioning detector. Formal evals, status pages, and downstream monitoring all failed.

### Evidence
- `telemetry_grade`: operator-logs (provider self-report; the postmortem is the failing party's own account, though technically detailed and against interest)
- `sources`:
  - https://www.anthropic.com/engineering/a-postmortem-of-three-recent-issues (primary, first-party)
  - https://www.infoq.com/news/2025/10/anthropic-infrastructure-bugs/ (third-party, derived from the postmortem)
  - https://www.implicator.ai/anthropics-postmortem-three-bugs-pushed-claude-degradation-to-16-at-peak/ (third-party, derived from the postmortem)
  - `independence`: weak on root cause (single first-party source); strong on the fact of degradation (mass contemporaneous user reports).
- `confidence`: high on mechanism and timeline (detailed provider postmortem); low on downstream cost (never measured)

### Verification notes
- Candidate dates and figures check out against the primary postmortem. One refinement: candidate window ended 2025-09-12 (last confirmed rollback); the routing fix's full deployment ran to Sep 16-18.
- `exploitation_status` enum (v0.1 amendment 3) has no value for non-adversarial in-wild malfunction; flagged for v0.2.
