[Bug] Model picker fallback entry shows Opus 4.7 instead of Opus 4.8

Status Open
Reported on v2.1.220
Maintainer reply None cached
Activity 1 comment · opened Jul 26, 2026

Bug Description
Model picker's "fallback" entry offers Opus 4.7, skipping Opus 4.8

Environment

  • Claude Code 2.1.220 (verified against the running session process via lsof -p <pid> -d txt, not the version symlink; no newer build installed)
  • macOS (darwin 25.5.0), Max subscription, provider = firstParty (no CLAUDE_CODE_USE_* env set)
  • No ANTHROPIC_DEFAULT_* overrides, no managed availableModels, settings.json has no model keys

What happens
/model shows six entries. The last one is:

  1. Opus 4.7 (1M context) Previous Opus — fallback

Expected: Opus 4.8, the generation immediately before Opus 5. The client's own
strings say so: "Most Claude consumer surfaces ship with built-in Opus 4.8
fallbacks" and "Cyber-category refusals route to Opus 4.8 as the recommended
fallback".

This is not about Opus 4.8 being absent from the regular option list — that
reads as intentional, since the picker header says "For other/previous model
names, specify with --model". It is only about the fallback entry being pinned
to 4.7 instead of 4.8.

Evidence that Opus 4.8 is accessible and healthy on this account

  • Headless run with --model claude-opus-4-8 --output-format json returned:

modelUsage = {"claude-opus-4-8": {canonicalModel: "claude-opus-4-8",
provider: "firstParty", contextWindow: 1000000, maxOutputTokens: [REDACTED]}}

  • Negative control: --model claude-opus-4-9 fails with "There's an issue with

the selected model… It may not exist or you may not have access to it", so the
id is genuinely validated and 4.8 was not a silent fallback.

Evidence the string does not come from the client binary

  • — fallback (em dash) and - fallback: 0 occurrences in the 2.1.220 binary.
  • The catalog's own descriptions for 4.7 are "Opus 4.7 · Legacy" and

"Opus 4.7 for long sessions" — neither matches what is rendered.

  • The catalog entry for 4.8 is complete and current: id claude-opus-4-8,

display_name "Opus 4.8", knowledge_cutoff "January 2026", alias opus48,
plus both picker builders ("Opus 4.8 · Previous Opus version" and
"Opus 4.8 (1M context)").

Evidence it does not come from the local option cache

  • additionalModelOptionsCache in .claude.json was rewritten at the moment the

picker was opened and contains only the Fable entry.

  • modelAccessCache is [] and orgModelDefaultCache is null.

Conclusion
Having excluded the binary, the local caches and a stale build, the entry
appears to be served at runtime and pinned to Opus 4.7 rather than 4.8.

Workaround in use: /model claude-opus-4-8 (accepted — "or a full model ID").

Environment Info

  • Platform: darwin
  • Terminal: Apple_Terminal
  • Version: 2.1.220
  • Feedback ID: c3085fda-1e30-48f8-a2c1-c6be434a7661

Errors

[]

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗