[BUG] Opus 5.5 requires unstable release of Claude Code
Status Open
Reported on v2.1.275
Maintainer reply None cached
Activity 4 comments · opened Sep 22, 2026
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
All attempts to use Opus 5.5 (claude-opus-5-5) in the current stable release of Claude Code fail deterministically with the following error message:
❯ /model claude-opus-5-5
⎿ API error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"Claude Code 2.1.275 does not support this model; version 2.1.280 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.","details":{"error_code":"claude_code_version_too_old"}},"request_id":"req_011CfK2o3XeCrKAFyfBPTJHd"}
What Should Happen?
Opus 5.5 requests should succeed in the current stable release of Claude Code. As of this moment, that is 2.1.267:
❯ date; npm view @anthropic-ai/claude-code dist-tags.stable
Tue Sep 22 14:37:53 CDT 2026
2.1.267
Error Messages/Logs
❯ /model claude-opus-5-5
⎿ API error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"Claude Code 2.1.275 does not support this model; version 2.1.280 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.","details":{"error_code":"claude_code_version_too_old"}},"request_id":"req_011CfK2o3XeCrKAFyfBPTJHd"}
Steps to Reproduce
claude install stableclaude --model claude-opus-5-5 --print 'what is your knowledge cutoff?'- observe the following error message and a non-zero exit code:
[claude-code:unrecognized_model] {"model":"claude-opus-5-5","query_source":"sdk"}
API Error: 400 Claude Code 2.1.267 does not support this model; version 2.1.280 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.267
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
iTerm2
Additional Information
_No response_
4 Comments
This is another unique manifestation of #91345, this time for Opus 5.5 rather than Fable 5.1.
Unclear what side-effects this might have, but this is what Fable came up with
The first one prevents the Claude Code version from being injected in the prompt, the second (as the name implies) lies about its version in the User Agent.
The most reasonable thing I can come up with is Anthropic is trying to ensure Opus 5.5 uses the "right" Claude Code system prompt. Different models and versions have different system prompts bundled into Claude Code. However, you can always use
--system-promptto override the system prompt of any model to whatever you want.Adding a Claude Desktop data point, since this thread is mostly CLI-side. The desktop app is affected too, and it's arguably worse there because the user has no way to clear the version floor themselves.
The desktop app does not use the CLI on your
PATH— it runs its own bundled copy.On my install (Windows 11, desktop app
2.9939.2):The bundled binary is the one that actually serves desktop sessions — it's pointed at by
CLAUDE_CODE_EXECPATH:So the failure mode from a user's perspective is: run
claude update/ update the npm package, see2.1.282, and still not be able to select Opus 5.5 in the desktop app — because the desktop app never consults that install. The error message's advice ("Runclaude update, or update the Claude desktop app") is misleading in this case: updating the npm CLI has no effect on the desktop app, and the desktop app was already on its current version while still shipping a2.1.111CLI.This is a version gate, not an entitlement problem.
GET /v1/modelsfor the same account returns200and includesclaude-opus-5-5in the list, so the account has access. The model is simply refused for clients below the floor.Confirmed the floor is the only blocker: invoking the same model through the PATH CLI (
2.1.282) on the same account works normally, while the desktop app on the same machine cannot offer it.Also worth flagging for anyone hitting this:
npm dist-tagscurrently hasso installing the
stabletag is not sufficient — which matches this issue's title.Suggested fixes, in rough priority order:
/status, so the mismatch is at least visible).claude_code_version_too_oldreport the version of the client that actually issued the request, rather than generic update advice — right now it points users at an install that isn't in play.stable.Follow-up to my earlier comment: I found the actual root cause on my machine, and it is not simply that the desktop app ships an old CLI. Posting in case others on Windows hit the same thing.
The desktop app does auto-update its CLI, but the update was silently failing. From the desktop app's
main.log(%LOCALAPPDATA%\Claude\Logs\main.log):Cause: I had relocated the app's data directory to another drive by making
%APPDATA%\Claudean NTFS junction toD:\Claude. With that in place, the (MSIX-packaged) app could read files and write to existing files through the junction, but everymkdirunder it failed with ENOENT. Since each CLI version is installed into a newclaude-code\<version>\folder, every update attempt failed (I found attempts for 2.1.275, 2.1.280 and 2.1.281 in the log), and the app kept falling back to the last CLI it had installed before the junction existed. The same failure also hitgit-shadowand skill downloads.Fix: make
%APPDATA%\Claudea real directory again and, if disk space requires it, junction only large subfolders (for me,vm_bundles) out to the other drive. After restarting, the app downloaded 2.1.281 on its own, loggedUsing Claude Code binary at: ...\claude-code\2.1.281\claude.exe, and Opus 5.5 now works in the desktop app.How to tell if you're affected: search
main.logforFalling back to installed versionorfailed at mkdir (ENOENT). If the fallback version is below 2.1.280, Opus 5.5 will be refused, even on the latest desktop build.This is probably worth handling in the app itself: the CLI download failure is only visible in the log, and the user just sees the generic
claude_code_version_too_oldmessage. Surfacing "CLI update failed: could not create directory" in the UI would have saved a lot of debugging.