Model ... is not a recognized model id
指定したモデルIDが存在しない状態。設定や環境変数の書き間違いが主因。
エラー文字列
Model ... is not a recognized model id
何が起きているか
指定されたモデルIDが、利用可能なモデルのどれとも一致しませんでした。
指定の出どころは複数あります。エラーが出たら、どこから来た値なのかを特定するのが先です。
| 出どころ | 確認方法 |
|---|---|
| コマンドライン引数 | 実行したコマンドを見直す |
環境変数 ANTHROPIC_MODEL |
env で確認 |
環境変数 ANTHROPIC_DEFAULT_MODEL |
同上 |
settings.json の model |
ユーザー設定・プロジェクト設定の両方 |
⚠️ ANTHROPIC_MODEL が ANTHROPIC_DEFAULT_MODEL より強い。 両方に値が入っていると、後者を直しても変わりません。
🔴 止まらずに続くほうが厄介
同じ「知らないモデルID」でも、出るメッセージが2種類あります。
| 出るもの | 挙動 |
|---|---|
Model "..." is not a recognized model id. |
その場で止まる |
"..." isn't described by this version's model catalog |
止まらない。そのまま動く |
v2.1.259 で --model bogus-9999 を渡して実測したところ、後者が出て処理は続きました。
"bogus-9999" isn't described by this version's model catalog; update Claude Code, or map it
with behavesAs on a modelPicker row (or modelOverrides, if it is a provider id of a model
this version knows). Until then auto-compact keeps this session within 200k tokens
(the context window it assumes)
⚠️ この文言は v2.1.259 で書き換わりました。
古い版では is not a model this version of Claude Code recognizes と出ていました。
古い記事を見ている場合は、手元の版を確かめてください。
⚠️ これは標準エラーに出る警告で、終了コードは変わりません。 気づかずに使い続けることになります。
起きるのは次のことです。
| コンテキスト長を 200k と仮定する | 実際にそれより広くても、200k で自動圧縮が始まる |
| 会話が早く切り詰められる | 「前に言ったことを忘れる」形で表面化する |
| エラーとしては扱われない | ログを grep しても失敗として出てこない |
⭐ 「動いてはいるが、やたら早く忘れる」ときはこれを疑ってください。 メッセージ自身が3つの回避策を挙げています。
| やり方 | 内容 |
|---|---|
| 更新する | 新しいモデルなら、版を上げるのが一番早い |
| 1M を使う | モデル名の末尾に [1m] を付ける |
| 窓を明示する | CLAUDE_CODE_MAX_CONTEXT_TOKENS に実際の値を入れる |
| 認識させる | modelPicker の行に behavesAs を書く、または modelOverrides |
⭐ behavesAs は v2.1.259 で案内されるようになりました。
知らないモデルを「既知のどれと同じ振る舞いか」で対応付けます。
よくある原因
| 原因 | 例 |
|---|---|
| 打ち間違い・古い書き方 | 世代が変わってIDの形式が変わった |
| 表示名をIDとして書いた | Sonnet のような表示名は ID ではない |
| 接続先が違う | Bedrock / Vertex AI ではIDの体系が異なる |
| コピー時に余計な文字が入った | 前後の空白、引用符、改行 |
⭐ Bedrock や Vertex AI 経由で使っている場合、Anthropic API 用のモデルIDはそのまま使えません。 各プラットフォームのID体系に従う必要があります。ここが見落とされがちです。
直し方
1. 使えるモデルを一覧で見る
/model
表示された中から選ぶのが確実です。 手で打つ必要はありません。
2. どこで指定されているか探す
macOS / Linux
env | grep -iE 'anthropic_model|anthropic_default_model'
grep -n '"model"' ~/.claude/settings.json .claude/settings.json .claude/settings.local.json 2>/dev/null
Windows(PowerShell)
Get-ChildItem Env: | Where-Object Name -match 'ANTHROPIC_MODEL|ANTHROPIC_DEFAULT_MODEL'
Select-String -Path "$env:USERPROFILE\.claude\settings.json", ".claude\settings.json", ".claude\settings.local.json" -Pattern '"model"' -ErrorAction SilentlyContinue
優先順位は「コマンドライン → 環境変数 → プロジェクト設定 → ユーザー設定」です。上位に残っていると、下位を直しても変わりません。
3. 余計な文字が混ざっていないか確認する
コピー&ペーストで前後に空白や引用符が入ることがあります。
Windows(PowerShell)— 実際の中身をバイト単位で確認する
$v = $env:ANTHROPIC_MODEL
"[{0}] 長さ={1}" -f $v, $v.Length
表示された文字列より 長さ が大きければ、見えない文字が入っています。
macOS / Linux
printf '[%s] %d\n' "$ANTHROPIC_MODEL" "${#ANTHROPIC_MODEL}"
4. 設定を外して既定に戻す
まず動く状態に戻してから、必要なら改めて指定し直すのが早道です。
unset ANTHROPIC_MODEL
unset ANTHROPIC_DEFAULT_MODEL
claude
Remove-Item Env:ANTHROPIC_MODEL -ErrorAction SilentlyContinue
Remove-Item Env:ANTHROPIC_DEFAULT_MODEL -ErrorAction SilentlyContinue
claude
恒久的に消す場合は次のとおりです。
[Environment]::SetEnvironmentVariable("ANTHROPIC_MODEL", $null, "User")
settings.json から消す場合は、JSON の構文を壊さないように注意してください。 行を削除した結果、末尾にカンマが残ると Could not read Claude Code config になります。
5. Bedrock / Vertex AI を使っている場合
まず、どの接続先を使っているか確認します。
env | grep -E 'CLAUDE_CODE_USE_BEDROCK|CLAUDE_CODE_USE_VERTEX|ANTHROPIC_BASE_URL'
有効になっている場合、そのプラットフォームで利用可能なモデルIDを、そのプラットフォームのコンソールで確認してください。リージョンによって使えるモデルが違うこともあります。
意図せず有効になっているなら、外してください。
unset CLAUDE_CODE_USE_BEDROCK
6. 現在の状態を確認する
/status
設定を直したら必ずここで反映を確認してください。 別の場所に残っていた指定が効いている、というのが最も多い「直したのに直らない」の正体です。
再発防止
- ⭐ モデルは
/modelから選ぶ。 手打ちや設定ファイルへの直書きは、世代が変わるたびに壊れます - チームで共有する
.claude/settings.jsonにモデルIDを固定しない。各自のプランと接続先が違います - 環境変数でモデルを固定するのは、CI など理由がある場合だけにする
- 設定を消したら
/statusで確認する