Opus 4.6 quality regression: production automations broken by apparent model downgrade
Summary
A production automation pipeline that has been running reliably for 2+ weeks with claude-opus-4-6 suddenly started producing incoherent results today (March 6, 2026). The output quality is consistent with Sonnet 3.5, not Opus 4.6.
What happened
We run a daily automation that invokes Claude Code programmatically (@anthropic-ai/claude-code SDK, model: "claude-opus-4-6") to generate structured content following a detailed skill specification. The skill contains:
- Critical rules clearly marked at the top of the prompt (e.g., "NEVER do X in field Y")
- Style references pointing to a file the agent must read and apply
- Schema constraints the output must follow
For the past 2 weeks, the automation consistently:
- Followed all critical rules
- Read and applied the referenced style library
- Produced output matching the expected schema and quality bar
Today, without any change to our code, prompts, or configuration, the agent:
- Ignored critical rules that were clearly stated (produced output with values explicitly forbidden by "NEVER" rules)
- Skipped reading a referenced style file entirely, generating output in a completely wrong format
- The overall reasoning depth and instruction adherence dropped dramatically
This is not a subtle regression. The output went from "follows 15+ layered rules correctly" to "ignores top-level NEVER rules."
Broader pattern
This is not isolated to the automation. Across all sessions today (interactive and programmatic), the model feels like Sonnet 3.5 quality at best:
- Shallow instruction following
- Misses rules that require holding multiple constraints simultaneously
- Reduced reasoning depth on multi-step tasks
- When we ask the model to self-evaluate conversation quality, it consistently benchmarks at Sonnet 4 level maximum, not Opus 4.6
What we need from Anthropic
1. Transparency
If there has been an inference-time reduction, A/B test, model routing change, or any modification to what claude-opus-4-6 actually serves, this needs to be communicated. Paying for Opus and silently receiving a lower-capability model breaks trust.
2. Model version pinning
Production automations need continuity guarantees. We need the ability to pin to a specific model version (e.g., claude-opus-4-6-20260301) so that:
- Upgrades don't silently break working pipelines
- We can test new versions before adopting them
- Rollbacks are possible when regressions occur
This is standard practice for any API serving production workloads (OpenAI offers dated model snapshots, for example).
3. Immediate resolution
If this is a routing bug (requests for Opus being served by a smaller model), it needs to be fixed immediately. Users paying for Max/Opus tier cannot have their production workloads silently degraded.
Environment
@anthropic-ai/claude-codeSDK (latest)model: "claude-opus-4-6"permissionMode: "bypassPermissions"- Running on Linux VPS via cron
- Same code, same prompts, same config as previous successful runs
Impact
Production content pipeline is effectively broken. Output requires full manual redo. The automation's entire value proposition depends on the model reliably following complex multi-layered instructions, which it did perfectly until today.
Showing cached comments. Read the full discussion on GitHub ↗
14 Comments
Experiencing the same thing at the same time. It stopped following our merge instructions and claude.md file that outline how to merge things in SOC2 compliance, and clearly disregarded instructions
Adding another data point from tonight (March 8, 2026, ~9:30 PM EST / ~2:30 AM UTC).
Using Claude Code with claude-opus-4-6 on a Max subscription. During this session, the model exhibited behavior inconsistent with
Opus-level reasoning:
despite the infrastructure documentation (CLAUDE.md) clearly stating otherwise
When confronted, the model self-corrected immediately each time, which suggests the underlying capability is there but the reasoning
effort/depth is reduced.
This matches the pattern others describe: the model works but cuts corners, skips analysis steps, and makes shallow decisions that
Opus-tier reasoning should catch. It feels like a lower effort/capability mode rather than a completely different model.
Environment:
Would appreciate transparency from Anthropic on whether inference-time compute, quantization, or routing varies based on server load or
time of day.
For us, Claude just isn’t working anymore. It’s too dumb and keeps outputting awful code. These days we can’t use it because we end up losing time trying to make it work decently. The code quality has dropped a lot.
The temporary fix I found for myself is to pin model version in settings.json - {"model": "claude-opus-4-5-20251101"}. Hope the issue will be resolved soon
Adding structured data from a production system running 30+ days with strict monitoring and documented instruction-following metrics.
Our observations align with the reported window. March 6-8 showed measurable degradation specifically in multi-constraint instruction following: rules requiring 3 or more simultaneous conditions applied correctly dropped noticeably. The model began acknowledging rules accurately when queried directly, but not applying them during tool execution — a pattern distinct from earlier baseline behavior.
We audited our own system as the first hypothesis: same hooks, same CLAUDE.md, same command patterns, same environment. The hooks continued blocking what they always blocked. The degradation was in reasoning depth on complex instruction sets, not in our configuration.
The "invalid" label on this issue is not justified by the evidence. Whether the root cause is inference routing changes, quantization updates, or A/B testing of effort levels — production automations silently changing behavior IS a Claude Code platform problem, regardless of where in the stack it originates.
Relevant data point: v2.1.68 (released around March 4) changed Opus 4.6 to medium reasoning effort by default. That single change could account for the observed quality drop on multi-constraint tasks. If effort level was adjusted without user notification, that is a transparency gap.
Users on the Max Plan at $100/month building production systems on this platform need either version pinning, a changelog for inference-quality changes, or a status page. Silent degradation with no acknowledgment is the worst outcome.
For a comprehensive technical analysis covering all documented failure patterns and concrete feature requests, see #34358 — filed with detailed root cause analysis, 5 documented violation patterns, and 7 specific asks to Anthropic.
@AlKuz good call on the workaround — pinning to a known-good version is often the fastest way to stop the bleeding.
That said, it's essentially giving up on the newer model entirely. Curious if you actually saw consistent improvement after pinning, or just partial? We've been tracking instruction-following compliance with 30+ enforcement hooks and the degradation was pretty specifically in multi-constraint scenarios — so wondering if the older version holds up there too.
The real fix has to come from Anthropic's side. A version pin buys time but it's not sustainable — next release, same problem potentially.
fwiw we filed #34358 with concrete metrics and specific asks if you want to add your data there.
This issue should not be labeled \
invalid\.The \
invalid\label signals that an issue is not a real problem, but the evidence here contradicts that:claude-opus-4-5-20251101\, per @AlKuz) — workarounds don't exist for invalid issues, they exist for real regressionsCross-reference: #34358 documents the same degradation window with enforcement hook telemetry across 30+ automated sessions, 5 distinct violation patterns, and explicit feature requests (model version pinning, transparency on routing changes).
The \
invalid\label actively discourages community input on what is clearly a reproducible, widely-confirmed problem. At minimum, this deserves investigation rather than dismissal.Please reconsider this classification.
@arwoxb24 I didn't measure any metrics, but it started working better in general. It's missing skill calls, but I had this problem previously. The pinned version at least keeps context and works closely with the project context - the latest version just created new implementations instead of using existing code.
My issue covers what actually happens versus feelings, the reason of the "feeling" of the quality downgrade is because 4.6 at 1m context is actually 4.5.
Opus 4.6 at 1m context was silently rolled for a lot of people, it only became apparent when they started comparing their maximum context length, which might be why the drop in quality wasn't noticed outright.
Confirming the same behavior and seeing it on social media, where people are complaining that for the last week you've been working with a simpler model.
I have been experiencing this very consistently for the past several days in interactive sessions: tasks which previously were straightforwardly complete to a high standard are now containing inexplicably stupid errors. OP's comment is great and matches my experience.
This seems to be happening very frequently. Fresh session, small context, CLAUDE.md instructions loaded but not followed, fabricated details presented as fact. And denial when confronted with evidence of it not reading instructions
For last 3 days, I see Claude Opus 4.6 in cowork is forgetting things very fast and repeating same errors despite telling not to. Plus, the session limits are depleting 4-5 times faster. But until 3 days before, it was smart.