opusplanが「Unsupported model」で失敗するClaude Desktopの不具合
Claude Desktopで/model opusplanが「Unsupported model」で失敗する不具合の症状と影響バージョン、CLIでの回避策をGitHub issueと公式docsの記載から確認します。
opusplanが「Unsupported model」で失敗する症状
Claude Desktopの「Code」タブで/model opusplanを実行すると、Unsupported modelという短いエラーだけが返り、モデルが切り替わらない不具合が報告されています。Claude Codeのopusplan設定は、plan mode中はOpus、実行フェーズはSonnetに自動で切り替わるハイブリッドエイリアスです。報告では、失敗するのはこのopusplanだけです。
最初の報告(GitHub issue #92007)は2026-09-04付けで、Windows 11上のClaude Desktop「Code」タブ、Claude Code v2.1.260での再現です。報告者は、設定の既定値には頼らず、チャットの冒頭で毎回/model opusplanを手で打つ使い方を数か月続けていました。設定も変えていないのに、この日からUnsupported modelが返るようになったという内容です。
同じ報告で、/model opusと/model sonnetは問題なく切り替わることも示されています。availableModelsやdisallowedModelsなどのモデル制限は~/.claude/settings.jsonにも~/.claude.jsonにも無いと、報告者自身が先に切り分けています。モデル一覧を絞る設定が原因なら単体エイリアスも巻き込まれやすいため、この切り分けは設定ミスの可能性を下げます。
同じ「モデルを切り替えられない」でも文言で原因が分かれる
モデル切り替えの失敗は、エラー文言ごとに原因も対処も違います。公式のエラーリファレンスに載っている文言と並べると、今回のUnsupported modelの位置が見えてきます。
| 画面に出る文言 | 意味 | 主な対処 |
|---|---|---|
Unsupported model | 意味エラーリファレンスに載っていない文言。本件のissueで報告されている | 主な対処下の回避策を使う |
Model "Sonnet5" is not a recognized model id. | 意味切り替えで渡された文字列がモデルIDとして成立しない | 主な対処/modelのピッカーで選び直す |
Model 'claude-opus-9' not found | 意味その名前のモデルの存在を確認できなかった | 主な対処IDの綴りとプロバイダーの提供状況を見る |
Model switch to Opus 4.6 was blocked by a PreModelSwitch hook: ... | 意味組織のフックが切り替えを承認しなかった | 主な対処文言の理由に従う |
Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. | 意味対象モデルに対してClaude Codeのバージョンが古い(400エラー)。本件とは別系統 | 主な対処claude updateかDesktopアプリの更新 |
is not a recognized model idは、Agent SDKのsetModel()やDesktopアプリのようにClaude Code CLIを裏側で動かすアプリが渡した文字列に対して出ます。Anthropic API経由では、表示名や空文字列のようにモデルIDになり得ない文字列だけが対象です。opusplanはモデルエイリアスなので、この説明の範囲には入りません。Desktopが起動したセッションでは、近いIDが無いときのヒントがSwitch to a different model.になる点も、/modelを打つCLIとの違いです。v2.1.200より前は、渡された文字列がそのまま保存され、次のリクエストでThere's an issue with the selected modelとして失敗していました。文言ごとの詳細は「is not a recognized model id」の意味と対処で扱っています。
ドキュメントの仕様とDesktopの挙動はなぜ噛み合わないのか
モデル設定リファレンスでは、opusplanは現行のモデルエイリアスとして掲載されています。plan modeではopus、実行フェーズではsonnetを使うという説明で、特定のバージョンで廃止されたという記載はありません。
Desktopアプリからのモデル切り替えには、別の決まりがあります。Agent SDKのsetModel()やDesktopアプリのようなアプリ経由で切り替える場合、v2.1.268以降のClaude Codeは、最初の切り替え時にプロバイダーへIDを問い合わせます。ローカルで受け入れるIDは対象外です。この問い合わせはどのプロバイダーでも走り、プロバイダーが提供しないIDは切り替えの時点で拒否されます。カスタムモデルオプションに設定したIDは、ローカルで受け入れる例として挙げられています。
一方、--modelフラグ、ANTHROPIC_MODEL環境変数、model設定でモデルを指定した場合は、起動時に事前チェックされません。誤った値は最初のリクエストでThere's an issue with the selected modelとして表に出ます。つまり、同じopusplanでも、チャット中に/modelで切り替える経路と、起動時に指定する経路で通る検査が違います。
opusplanが通る経路と失敗する経路
通ると報告されている
Desktopの/model opus・/model sonnet(最初の報告)と、同じMacのCLIでのopusplan(2026-09-10の報告、v2.1.267)です。いずれも正常に切り替わっています。
失敗すると報告されている
Desktopの「Code」タブでの/model opusplanと、モデルピッカーでopusplanを選ぶ操作です。
モデル設定リファレンスにopusplanは現行のエイリアスとして載っています。それでもDesktopだけ失敗するので、食い違いの原因はDesktop側の実装にあると読めます。最初の報告者は、Opus 5・Sonnet 5系列への切り替えに伴う回帰か、Desktopに同梱されたCode基盤と単体CLIとのバージョン差のどちらかを推測しています。これは報告者個人の推測で、Anthropicからの原因説明はありません。
報告されている環境とバージョン
issue #92007には8件のコメントがあり、環境の詳細を書いたものは2件です。残る6件は「+1」の短い追記で、最後は2026-10-01です。
issue #92007に寄せられた報告
- 2026-09-04最初の報告(Windows 11)
Claude Desktop「Code」タブ、Claude Code v2.1.260。
/model opusplanがUnsupported modelを返す。 - 2026-09-10Macでも再現(Desktop 1.49585.0)
Claude Desktop 1.49585.0。
settings.jsonに"model": "opusplan"を書いていても失敗し、同じマシンのCLI(v2.1.267)は正常。 - 2026-09-28新しいビルドでも継続(v2.1.281)
macOS 26.5.2、Claude Desktop 2.9939.2、同梱ランタイムはv2.1.281。ピッカー上のopusplanに「Unsupported model」のラベルが付き、選ぶと同じ表示が出る。
- 2026-10-01追記(+1)
環境の記載なしで、同じ症状への追記が続いている。
WindowsとmacOSの両方で出ており、同梱ランタイムがv2.1.260からv2.1.281に新しくなっても直っていません。
回避策 — Desktopのopusplanを待たずに使う
Desktopのopusplanそのものを直す手段は報告されていません。報告の切り分けから使える回避策は2つです。
回避策の選択肢
CLIで起動する
ターミナルから
claude --model opusplanで起動します。plan modeと実行フェーズの自動切り替えを保てるので、opusplanを主役にしている場合はこれが一番近い代替です。Desktopで手動に切り替える
plan modeに入るときに
/model opus、実装に移るときに/model sonnetと打ちます。単体エイリアスはDesktopでも失敗しないため通りますが、自動切り替えの利便性は失われます。
settings.jsonに"model": "opusplan"を書く方法は回避策になりません。同じエラーが出たことが、2026-09-10の報告にあります。
claude --model opusplanDesktopとターミナルは同じ設定ファイルを読むので、CLIで起動しても同じ設定(CLAUDE.mdを含む)が読まれます。Desktopのモデルドロップダウンは、CLIの--modelフラグとANTHROPIC_MODEL環境変数に相当する操作として説明されています。ドロップダウン側で足りない場面だけCLIに戻す、という使い分けができます。
Claude Code v2.1.289でclaude --helpを引くと、--modelの説明は次のとおりです。
claude --version
claude --help | grep -A4 -e "--model <model>"2.1.289 (Claude Code)
--model <model> Model for the current session. Provide
an alias for the latest model (e.g.
'fable', 'opus', or 'sonnet') or a
model's full name.--helpの例に挙がるのはfable・opus・sonnetで、opusplanは出てきません。opusplanはモデル設定リファレンス側に載っているエイリアスなので、ヘルプの例に無いことは使えない理由にはなりません。
CLIでopusplanを使うときに効く設定
回避策としてCLIに移るなら、opusplanが何に解決されるかを押さえておくと迷いません。plan modeで使うOpusはANTHROPIC_DEFAULT_OPUS_MODEL、それ以外の実行フェーズで使うSonnetはANTHROPIC_DEFAULT_SONNET_MODELで固定できます。
availableModelsで最新のOpusを除外し、古いOpusだけを許可しているとします。Anthropic APIとClaude Platform on AWSでは、opusplanは許可された中で最新のOpusをplan modeに使います。プロバイダー固有のIDを使うプロバイダーでは、この切り替えは見送られ、plan modeでも現在のモデルのままです。v2.1.205より前は、Anthropic APIでも最新版が除外されるとplan modeで現在のモデルのままでした。Opusがすべて除外されたときも、Sonnetのまま進みます。
コンテキストウィンドウは、plan modeのOpus段階がopus設定と、実行段階がsonnet設定と同じです。両方に1Mコンテキストを要求したいときは/model opusplan[1m]と指定でき、/modelでこの書き方を使うにはv2.1.265以降が必要です。それ以前のバージョンでは、--modelフラグかmodel設定で指定します。
修正状況はどこで追えるか
issue #92007はopenのままで、最後の更新は2026-10-01です。changelogでは、v2.1.282からv2.1.289までのエントリにUnsupported modelを扱う項目がありません。
opusplanに触れた近い項目が2つありますが、どちらも別の問題です。/model opusplan[1m]がModel not foundで拒否される不具合はv2.1.265で直っています。/modelやopusplanでOpus 5.5とSonnet 5.5を切り替えると、過去のMCPツール通知が書き換わり、拡張思考が失われることがある不具合はv2.1.287で直っています。エラー文言も対象の操作も違うので、今回の失敗とは区別して読みます。
Desktopを更新したあとの確認は、/model opusplanを実行してUnsupported modelが消えているかどうかで済みます。続報はissueのコメント欄に出るので、そちらも手がかりになります。
まとめ
Desktopを更新したら、/model opusplanでUnsupported modelが消えたかを先に確かめます。消えるまでは、opusplanを使う作業をターミナルのClaude Codeに回しておけば、自動切り替えを保てます。