Omniscio

OmniscioGuidesA model missing from /model

Claude Code model not showing in /model

A model you pay for is absent from the list, or the list has it and the switch will not take. Anthropic documents each failure with its own message, and the message you have decides which of five causes you are looking at. This page takes them in the order that gets you to an answer fastest, and quotes the wording you will actually see.

Last checked against Anthropic's documentation on October 26, 2026. By the Omniscio team. Updated .

Start with what you are seeing

Run /model with no argument and look at the list before you change anything. Where the model sits in that list, and what happens when you choose it, is the whole diagnosis.

The model is not in the list at all

What it means. The picker offers the models available to your account, so an absent row means something removed it before you got there. Anthropic documents two mechanisms that do this, and they belong to different people.

Your organization restricts model selection

Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.

That notice is what Claude Code prints at startup when --model, ANTHROPIC_MODEL or a settings file names a model your organization restricts. The model is not in the list, and the session starts on the substitute the notice names.

An administrator on a Claude Enterprise plan disables individual models in the claude.ai admin console, and that restriction reaches Claude Code with the account's entitlements when it signs in. Separately, an administrator can set an availableModels allowlist or a deniedModels list in managed settings. Either way, Anthropic's wording is direct: a restricted model is hidden from the /model picker.

The same hiding happens on every surface that receives the allowlist, and the delivery differs by surface. Cloud sessions run on Anthropic-managed VMs and take the list from server-managed settings; sessions on Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry and Claude Platform on AWS take it from an MDM profile or a managed settings file. A laptop fix will not reach a cloud session, and a settings change made in the app will not reach a Bedrock fleet.

Your provider's ID does not get a picker row

On the Anthropic API, a model ID you list in availableModels that has no built-in row appears as its own labelled row. On Amazon Bedrock, Google Cloud's Agent Platform and Microsoft Foundry, that is not true unless the ID starts with anthropic. Anthropic's instruction is to add the version to a modelPicker lineup as well, in your provider's format. A model that works when you type its ID can therefore be missing from the list until someone adds that row.

How to tell which one you have

  1. Ask whether anyone else on the same account sees the model. An organization restriction applies to every member it covers, including sessions started with your own API key. A provider ID problem shows up on one provider and not another.
  2. If you are on a Claude Enterprise plan, ask your administrator whether the model is disabled in the admin console. Only an administrator can change it.
  3. If you run on Amazon Bedrock, Google Cloud's Agent Platform or Microsoft Foundry, check whether the model has a picker row in the modelPicker lineup, not only in availableModels.
  4. If requests travel through a gateway, check whether the gateway serves the model at all. Claude Code can fill the picker from a gateway's model list, and where discovery is off or the gateway does not list the model, ANTHROPIC_CUSTOM_MODEL_OPTION adds one entry of your own.

Sources: Anthropic, restrict model selection, organization model restrictions, add a custom model option and surface coverage.

The switch is refused, or the name is rejected

What it means. Claude Code saw your choice and something with authority over the session turned it down. Four documented refusals live here, and each names its own reason, which is what makes them separable.

Your plan does not include the model

Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.

The second sentence is the part people skip. The stored token reflects the plan you had when you signed in, so an upgrade made on claude.ai does not reach a running session until you sign in again. Run /logout and then /login, and the model the plan includes appears.

An organization restriction, when you name the model

Model 'claude-opus-4-8' is restricted by your organization's settings. Run /model to choose a different model.
Model 'claude-opus-4-8' is not available. Your organization restricts model selection.

Both messages arrive when you name a model the list does not offer, because a restricted model is hidden from the picker. The first is what typing /model <name> for a model disabled in the admin console returns, and the session keeps its current model. The second is the managed settings form. A family alias behaves differently from a full ID: opus, sonnet, haiku and fable ask for the family, so on the Anthropic API and on Claude Platform on AWS a restricted alias resolves to the newest version of that family your organization permits, and only fails when every version of the family is restricted.

The Default option itself is blocked

Can't switch to the default model: your organization's managed settings block it (claude-opus-4-6) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".

A blocked Default is a separate fault from a blocked named model, and the sentence after the colon names which managed key to fix. Picking a model by name that the organization allows gets you working again while an administrator changes the setting.

A hook refused the switch

Model switch to Opus 4.6 was blocked by a PreModelSwitch hook: Opus 4.6 is retired for this project. Use a newer model.

A PreModelSwitch hook runs before a requested switch applies and can block it or ask you to confirm. The reason after the colon is the hook's own text. Two mechanical variants are worth recognising: a hook that does not answer before its timeout blocks the switch, and an organization's managed plugins that Claude Code cannot load also block it, because one of them might refuse and Claude Code will not apply a switch it cannot check. The hooks guide covers what a hook is and where it lives.

How to tell them apart

  1. Read what follows each message's own lead-in. Most of these name the blocker after a colon; the plan message names it in its opening sentence, and no two read the same way.
  2. Type the model name directly, as /model <name>. A restriction rejects the switch and leaves your current model running; a stale plan is not a rejection of the request but of the entitlement.
  3. If you upgraded your plan recently, sign out and back in before looking anywhere else.
  4. If a hook is named, ask its author or your administrator. A hook can block any model, including one your plan and organization both allow.

Sources: Anthropic, Claude Opus and the Pro plan, model restricted by your organization, can't switch to the default model and a PreModelSwitch hook.

Claude Code says it does not support the model

API Error: 400 Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.
API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.

What it means. The API refused the request with a 400 and the error code claude_code_version_too_old. The server checks the version reported by the Claude Code binary that made the request, and the message says which minimum applies: the model's own floor, or a minimum your organization set. Nothing about your account is wrong. The client that sent the request is older than the model.

Anthropic publishes the floors as they stand today. Opus 5.5 needs Claude Code 2.1.280 or later, Sonnet 5.5 needs 2.1.284 or later, and Haiku 5.5 needs 2.1.293 or later. The floor can also come from your organization's policy rather than from the model, which is the second message above.

How to fix it

  1. Update the binary that made the request, then start a new session. Where the binary came from decides the command, and Anthropic's own table is the one to follow.
  2. If you installed Claude Code yourself, run claude update. If the request came from the Claude desktop app, update the app. If it came from the VS Code extension, update the extension, because that extension ships its own copy of the binary. If it came from an Agent SDK package, upgrade the package and restart your application.
  3. If claude update reports you are current and the error stays, check your release channel. On the stable channel an update stops at the newest stable release, which can sit below a model's floor. Moving to the latest channel and updating again is the documented route.
  4. If your organization pins a channel or a version through managed settings, only an administrator can move it. The error will repeat until that changes.
  5. If the message is the organization policy form rather than the per-model form, update before you continue. Switching models is not an alternative there.

Sources: Anthropic, Claude Code does not support this model and available models.

You typed a model name and it was not found

Model 'claude-opus-9' not found
Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?
There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model.

What it means. Three messages, three different checks, and only one of them is about the catalogue.

The first message means Claude Code asked your endpoint whether the model exists and the endpoint said no. That is usually the answer for a name the endpoint does not serve, including a model that is available on the Anthropic API but not yet in your provider or region.

The second means the string cannot be a model ID at all. It arrives when a model is set through the Agent SDK, by an app that runs the CLI for you such as the desktop app, or from a device connected through Remote Control, and the value was a display name. The trailing hint names the closest alias or ID. When nothing is close, the hint tells you to run /model instead.

The third is what a mistyped or stale model value produces on the first request when the value came from --model, ANTHROPIC_MODEL or a settings file. Claude Code does not check those up front. The value is saved, the request goes out, and the endpoint answers that it has no such model or that your account lacks access.

The alias that selects an older model than you expect

This is the quiet version of the same problem. The opus, sonnet and haiku aliases resolve to the newest version on the Anthropic API and to an earlier version on some other providers. On Claude Platform on AWS, sonnet resolves to Sonnet 4.6 and haiku to Haiku 4.5. On Amazon Bedrock and Google Cloud's Agent Platform, sonnet resolves to Sonnet 4.5 and haiku to Haiku 4.5. On Microsoft Foundry, opus resolves to Opus 4.6, sonnet to Sonnet 4.5 and haiku to Haiku 4.5. If your list shows an older model than the one you read about, the alias is doing what Anthropic documented, and the newer model is still selectable by its full name.

How to fix it

  1. Use an alias rather than a version number where you can. An alias follows the maintained default instead of going stale.
  2. To use the newest model on a provider whose alias resolves lower, select the full model name, or set ANTHROPIC_DEFAULT_OPUS_MODEL or ANTHROPIC_DEFAULT_SONNET_MODEL to the full name. Each value must be a full model name or your provider's identifier.
  3. If a wrong model keeps coming back, a stale value is set somewhere. Anthropic lists the places a model can be set in priority order, and removing the stale one is the fix.
  4. If the switch came from the desktop app, the SDK or Remote Control, set the model in that product rather than only in the CLI.

Sources: Anthropic, model not found, not a recognized model id, an issue with the selected model and model aliases.

A different copy of Claude Code is choosing the model

What it means. Several products run Claude Code for you, and some of them ship their own copy of the binary. The version the API checks is the version of the binary that made the request, so a model can be missing in one place and present in another on the same machine.

  • The Claude desktop app. It runs the CLI for you, and updating the app updates the copy it uses.
  • The VS Code extension. It bundles its own binary, so the extension can be the old one while your terminal install is current.
  • An Agent SDK package. The SDK bundles a binary too, and a compiled single-file executable has to be rebuilt to pick up a newer one.
  • Remote Control and apps that call the SDK. A switch from Remote Control is checked locally on the Anthropic API, with no request sent. A switch from an app or the Agent SDK on v2.1.268 or later is confirmed with your provider on the first switch, on every provider, so a model your provider does not serve is refused at the switch.

A gateway adds a second way for the list to be short. Claude Code can fill the picker from the gateway's own model list, and a gateway that does not serve a model gives the picker nothing to show for it. Anthropic's documented route is to add the entry yourself: set ANTHROPIC_CUSTOM_MODEL_OPTION to the model ID, and the optional ANTHROPIC_CUSTOM_MODEL_OPTION_NAME and ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION variables give it a label and a note. Set them before you start Claude Code, or start a new session to pick them up, because the variables are read at startup. The entry appears after the built-in rows. If an availableModels allowlist is also in force, the custom ID has to be in that list too, or Claude Code filters it out again.

How to check which copy you are using

  1. Compare the version the failing surface reports with the version your terminal reports. If the desktop app or the extension is behind your terminal, that is your answer.
  2. Update the surface that failed, not the one that works. Restart the app or reload the extension afterwards, because a new binary is picked up on the next start.
  3. If the model is missing only behind a gateway, check the gateway's model list first, then add a custom entry if the gateway serves a name Claude Code does not know.

Sources: Anthropic, the per-binary update table, setting your model and add a custom model option.

What does not help

The advice that circulates for a missing model is mostly about the wrong failure, so it is worth saying which of the usual moves Anthropic does not list.

  • Restarting Claude Code, for the model and version messages. Anthropic names a restart in two narrow places: when Claude Code cannot read your organization's managed settings, and, before 2.1.260, after a managed plugin refused a model switch. No other message here is fixed by a restart, because a restart changes neither the binary's version, the organization's allowlist nor your plan.
  • Reinstalling the same version. A version floor is about the binary's version, not the health of the install. Reinstalling the build you already have leaves the floor where it was, while claude update or a newer installer moves it.
  • Adding the model to a list in your own settings. An availableModels list is an administrator's tool. Where a managed list exists it alone applies, and lists in user, project or local settings cannot extend it. deniedModels and availableModelsMatch are stricter still: Claude Code reads them from managed settings only and ignores them elsewhere with a warning.
  • Assuming the picker is broken. The picker reflects the account. A model missing from it is missing for a reason Anthropic documents, and every reason on this page has a named owner: an administrator, a plan, a binary, or a typed value.

Sources

Every message and every step on this page rests on one of these, read on October 26, 2026. Anthropic's pages change with nearly every Claude Code release, and the error reference keeps notes such as "Before v2.1.265", so read them again before you trust a copy of this page from a few months back.

  • Anthropic, model configuration, for the aliases and the version floors, setting a model and its priority order, the allowlist and deny list, the Default option, the picker lineup, custom model entries and the per-provider alias table.
  • Anthropic, the Claude Code error reference, for every quoted message and its documented recovery: the selected-model message, the recognized-ID check, model not found, the version-too-old 400, the organization restriction, the blocked Default and the PreModelSwitch hook.
  • Anthropic, managed settings, for where an allowlist is delivered and why a settings change on one surface does not reach another.
  • GitHub issue #63456, an open report of a model that was available on the account and not selectable in the CLI picker, read through the API on October 26, 2026.
  • GitHub issue #98333, an open report of a version check in the model selector reading the wrong required version.

Common questions

Why is a model I can use missing from the /model list?

The picker shows the models available to your account. Anthropic documents two reasons a model is absent from it: an organization restriction, which hides the model for everyone the admin restricted, and a provider-specific model ID that Claude Code does not draw a row for unless the ID is listed in a picker lineup.

Does Claude Code hide models when my plan does not include them?

The two arrive differently. A model your plan does not include answers with a message naming the plan when you try to use it, while a model your organization restricts is left out of the list and rejected when you type its name. That difference is the quickest way to tell the two apart.

How do I know whether my Claude Code is too old for a model?

A request for a model newer than your build fails with a 400 that names the minimum version and tells you to run claude update. Anthropic publishes the floor for each model, and the server checks the version reported by the Claude Code binary that made the request.

Why does typing a model name give a different error from picking it?

The picker only offers names Claude Code accepts. A typed value is checked separately, and a name the endpoint does not serve, or a display name such as Sonnet 5 rather than a model ID, fails with its own message before or at the first request.

When the missing model is the default you saved

A different problem sits next to this one, and it is the one Omniscio can help with. Your saved default model does not move on its own, so when an update adds a newer model in the same family, you keep starting Claude Code sessions on the old one until you notice.

Omniscio, the desktop app we make for running many Claude Code sessions at once, handles that case. When an Omniscio update adds a newer model in the family you already use, it moves your saved default once and raises an inbox card naming the old and the new model, with Revert and Turn off auto-upgrade. It never crosses model families, never touches a running session, and it only moves you to a model your installed Claude Code can run, so an older binary is never given a model it cannot use. One condition is worth knowing: while Omniscio's own "Use Omniscio's recommended models" setting is on, which it is by default, that feature decides your defaults and auto-upgrade stands aside, noting each newer model without switching to it and showing no card. The automatic newest-model upgrade page in the library has the detail.

That solves a stale default. It does not put a model into Anthropic's picker, and it does not override a plan, an organization's allowlist or a version floor. If the model is missing rather than unpicked, the causes on this page are still the ones to work through. The features page covers the rest of the app and the download page has the installers.