「thinking.type.enabled」エラーの原因と対処法(Claude Code)
「thinking.type.enabled is not supported for this model」はClaude Codeのバージョン不足が原因です。モデル別の必要バージョンと直し方をまとめます。
「thinking.type.enabled is not supported」はClaude Codeのバージョンが古いときに出る
Claude Codeで新しいモデルに切り替えた直後、次のAPIエラーで止まることがあります。
API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.原因はモデル側ではなくClaude Codeのバージョンです。使っているClaude Codeのバージョンが、選んだモデルが要求する最小バージョンより古く、CLIが送るthinking設定のパラメーター形式そのものが古いままになっています。モデルは旧形式のthinking.type.enabledをすでに受け付けません。thinking.type.adaptiveとoutput_config.effortの組み合わせを要求しますが、古いCLIはこの新しい組み合わせを送れません。
なぜパラメーターが変わったのか
Opus 4.6・Sonnet 4.6までは、thinkingの深さをMAX_THINKING_TOKENSで固定するfixed thinking budget方式でした。Opus 4.7以降・Sonnet 5・Fable 5は、タスクの難易度に応じてモデル自身が考える量を決めるadaptive reasoning(適応的思考)に切り替わっています。この切り替えに合わせてAPIのパラメーターもthinking.type.enabledからthinking.type.adaptive+effortレベル指定へ変わりました。古いバージョンのClaude Codeは新方式のパラメーターを知らないため、旧方式のまま新モデルへリクエストを送り、モデル側に拒否されるという流れです。
モデル別の必要バージョン早見表
| モデル | Claude Codeの最小バージョン | TypeScript SDK | Python SDK |
|---|---|---|---|
| Opus 4.7 | Claude Codeの最小バージョンv2.1.111以降 | TypeScript SDK指定なし | Python SDK指定なし |
| Opus 4.8 | Claude Codeの最小バージョンv2.1.154以降 | TypeScript SDKv0.3.154以降 | Python SDKv0.2.88以降 |
| Sonnet 5 | Claude Codeの最小バージョンv2.1.197以降 | TypeScript SDKv0.3.197以降 | Python SDK指定なし |
| Opus 5 | Claude Codeの最小バージョンv2.1.219以降 | TypeScript SDKv0.3.219以降 | Python SDK指定なし |
現在のバージョンはclaude --versionで確認できます。
claude --version表の対象モデルより新しいバージョンを使っていれば、通常このエラーには遭遇しません。逆に言えば、複数のモデルを切り替えて使っている場合、その中でもっとも新しいモデルの要件を満たすバージョンまで上げておけば、以降どのモデルを選んでもこのエラーを避けられます。Claude Codeのバージョン管理の考え方はClaude Codeアップデートガイドで、Opus 4.x以降のモデル移行時に確認すべき点はClaudeモデルの移行ガイドでそれぞれ扱っています。
対処法1: claude update でアップグレードする
もっとも確実な対処は、Claude Code自体を最新版へ上げることです。
claude updateアップグレード後はclaudeを再起動します。既存のセッションを再起動せずに使い続けると、プロセスが古いバイナリのまま動き続けて修正が反映されません。
対処法2: 一時的に古いモデルへ切り替える
すぐにアップグレードできない環境では、/modelでOpus 4.6かSonnet 4.6を選び直すことでエラーを回避できます。この2モデルはfixed thinking budget方式のままなので、古いバージョンのClaude Codeからでも問題なく動きます。
/modelただしこれはあくまで一時しのぎです。Opus 4.7以降の性能を使うタスクでは、結局claude updateを避けて通れません。チームで作業している場合は、自分だけ古いモデルへ切り替えて凌ぐと、他のメンバーとの動作の違いに気づきにくくなる点にも注意してください。恒常的な回避策ではなく、アップグレードまでの橋渡しとして使う位置づけです。
似ているが原因が違うエラーと区別する
モデル指定まわりのエラーはいくつかあり、症状が似ているため混同しやすいです。
| メッセージ | 何が起きているか | 対処 |
|---|---|---|
thinking.type.enabled is not supported for this model | 何が起きているかモデルIDは正しく認識されているが、CLIのバージョンがそのモデルの最小要件を満たしていない | 対処claude update |
Model is not a recognized model id | 何が起きているか指定した文字列自体がモデルのエイリアスにもIDにも一致しない(タイプミスや表示名の誤用) | 対処/modelで正しいIDを選び直す |
There's an issue with the selected model | 何が起きているかモデル名は既知だが、アカウントにそのモデルへのアクセス権がない | 対処/modelで利用可能なモデルへ切り替え |
3つとも「モデルが使えない」という結果は同じですが、原因の階層が異なります。thinking.type.enabledのエラーはモデルの指定自体は正しいのに、CLIがその新しいモデル向けの通信形式に対応できていないという、CLI側のバージョン問題に固有の症状です。エラーメッセージの文言をよく読んで、モデルIDそのものが疑われているのか、パラメーターの形式が疑われているのかを見分けると、無駄な設定変更を避けられます。
Agent SDKで遭遇した場合
CLI本体ではなくAgent SDK経由でこのエラーに当たった場合、SDKパッケージ自体のアップグレードが必要です。必要バージョンは上の表のTypeScript SDK・Python SDK列を参照してください。SDK側はclaude updateではなく、パッケージマネージャーで個別に上げます。
npm view @anthropic-ai/claude-agent-sdk version
npm install @anthropic-ai/claude-agent-sdk@latestPythonの場合はclaude_agent_sdkパッケージを対象にします。
pip show claude-agent-sdk
pip install --upgrade claude-agent-sdkCLIとSDKはバージョン体系が別物です。CLIをclaude updateしても、SDK経由のプロセスが参照しているパッケージのバージョンは変わりません。両方を使う構成では、どちらの経路でエラーが出ているかをまず特定してから、対応する側だけを上げるのが遠回りが少ない進め方です。エラーメッセージだけでは呼び出し元がCLIかSDKか判断しづらいため、実行しているコマンドやスクリプトがどちらを経由しているかを確認してから対応するとやり直しが減ります。
バージョンを上げてエラーが解消した直後は、意図していたthinkingの深さと実際に使われているeffortレベルが噛み合っているかも確認しておくと、挙動の違いに戸惑いにくくなります。
よくある質問
claude updateを実行しても直りません
アップデート後に古いプロセスを再起動していないケースが大半です。ターミナルを閉じてclaudeを起動し直すか、IDE統合やagent viewで常駐しているセッションがあれば、それらも個別に再起動する必要があります。バックグラウンドで動き続けているセッションは、更新後もバイナリの入れ替えに気づかず古いバージョンのまま処理を続けることがあります。
バージョンを上げられない事情があります
管理された環境で特定バージョンに固定している場合など、すぐに上げられない事情があるなら、/modelでOpus 4.6・Sonnet 4.6を選ぶのが現実的な回避策です。これらのモデルはfixed thinking budget方式のままで、古いCLIからでも動作します。
MAX_THINKING_TOKENSを設定しているのに無視されます
Fable 5・Sonnet 5・Opus 4.7以降は常にadaptive reasoningで動くため、MAX_THINKING_TOKENSに非ゼロの値を設定しても基本的に無視されます。固定予算方式に戻すにはCLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1を設定します。ただしこれはOpus 4.6・Sonnet 4.6にのみ効果があり、Opus 4.7以降やSonnet 5には効きません。
Agent SDKでプロジェクトごとにバージョンが違う場合はどうなりますか
npm installはデフォルトでプロジェクトのローカルnode_modulesにインストールされるため、複数のプロジェクトでそれぞれ別のSDKバージョンを使うことができます。あるプロジェクトだけアップグレードを忘れていると、そのプロジェクトの処理だけがこのエラーで止まり、他のプロジェクトは正常に動くという状況が起こり得ます。プロジェクトを横断してSDKを使っている場合は、package.jsonの依存バージョンをプロジェクトごとに確認してください。
Bedrock・Google CloudのAgent Platform経由でも同じエラーになりますか
このエラーの原因はClaude Code CLI側のバージョンです。接続先のプロバイダーにかかわらず、CLIが対象モデルの最小バージョン要件を満たしていなければ同じ文言が出得ます。対処法も共通でclaude updateです。プロバイダーによって障害の原因を切り分けたくなりますが、まずはローカルのバージョンを疑うのが早道です。
なぜCLIとモデルでバージョン要件が別々に決まっているのですか
CLIはモデルへ送るリクエストの形式(パラメーターの組み方)を組み立てる役割を持ち、モデル側はその形式を解釈して応答します。新しいモデルがadaptive reasoning用の新パラメーターしか受け付けなくなった時点で、CLI側もその形式でリクエストを組めるバージョンでなければ会話が成立しません。ここが噛み合っていないと発生するのがこのエラーで、モデルの新旧というよりCLIとモデルの組み合わせの問題です。
まとめ
「thinking.type.enabled is not supported for this model」は、モデル側の不具合ではありません。Claude Codeのバージョンがそのモデルの最小要件に達していないサインです。claude --versionで現在のバージョンを確認し、表の要件を下回っていればclaude updateで最新化するのが本筋の対処です。すぐに上げられない場合は/modelでOpus 4.6・Sonnet 4.6へ一時的に切り替え、Agent SDK経由の場合はSDKパッケージ自体を個別にアップグレードします。
原因を切り分ける順番は次のとおりです。
claude --versionで現在のバージョンを確認する- 表の必要バージョンと照らし合わせる
- 下回っていれば
claude updateを実行する - Agent SDK経由なら
npm view・pip showでパッケージのバージョンも別途確認する