OpenCodeのproviderまたはmodel not foundエラーでは、まず選択したモデルを、OpenCodeが実際に読み込んだプロバイダーIDとモデルIDに一致させてください。通常、参照はproviderId/modelIdの形式です。正しいAPIキーでも、スペルミスのID、宣言されていないカスタムモデル、実行中のプロセスが読み込んでいない設定ファイルは修復できません。
「provider problem」という表現だけでなく、エラーに従う
| 表示される内容 | 最初に確認する分岐 |
|---|---|
ProviderModelNotFoundError | プロバイダー/モデルの識別情報、読み込まれたカタログ、モデルアダプター |
| v2:モデルを利用できない | 非アクティブなプロバイダー、存在しないまたは無効化されたモデル、変更された検出またはエイリアス |
ProviderInitError | プロバイダーパッケージと初期化設定 |
| エンドポイントからのHTTP 401または403 | 認証情報、ホスト、アカウント権限 |
| HTTP 429または請求メッセージ | 応答したプロバイダーのレート制限と支出上限 |
公式のトラブルシューティングガイドは、モデルが見つからないエラーについてモデル参照を確認するよう案内しています。プロバイダーソースでは、検索時にプロバイダーエントリとそのモデルマップの両方を確認します。同じエラーが、アダプターのモデル欠落エラーを包んでいる場合もあります。認証情報を変更したり、追加クレジットを購入したりする前に、正確なメッセージを記録してください。
1. バージョンと選択したモデルを特定する
失敗が発生するプロジェクトから、次の確認を実行してください。デスクトップアプリケーションが別のサーバーを使用している場合は、そのバージョンと設定を、このターミナルのインストールと比較してください:
opencode --version
opencode models
opencode auth list一覧から完全なモデル参照を見つけ、選択内容と1文字ずつ比較してください。プロバイダープレフィックスは識別情報の一部です。カスタムゲートウェイ経由で提供されるモデルは、名前にClaudeが含まれているだけで組み込みのAnthropicプロバイダーになるわけではありません。
保存された認証情報を、リモート認証に成功した証拠だと解釈しないでください。認証情報がローカルに存在することは示しますが、リクエストを行った際にエンドポイントがそれを受け入れる必要があります。
2. プロバイダーとモデルの組み合わせを修正する
この例ではv1プロバイダー形式を使用し、一致させる3つの識別子を示します。OpenCodeを起動するプロセスで参照される環境変数を設定するか、ドキュメント化された認証情報フローを使用してください。関係するフィールドを設定に統合し、無関係な設定を上書きしないでください:
{
"$schema": "https://opencode.ai/config.json",
"model": "kunavo/claude-sonnet-5",
"provider": {
"kunavo": {
"npm": "@ai-sdk/openai-compatible",
"name": "Kunavo",
"options": {
"baseURL": "https://api.kunavo.com/v1",
"apiKey": "{env:KUNAVO_API_KEY}"
},
"models": {
"claude-sonnet-5": {
"name": "Claude Sonnet 5"
}
}
}
}
}ここで、kunavoはプロバイダーキー、claude-sonnet-5はモデルキーです。したがって選択はkunavo/claude-sonnet-5になります。anthropic/claude-sonnet-5を選択すると別のプロバイダーが選ばれ、Kunavo/Claude Sonnet 5を選択すると表示名が検索キーの代わりに使われます。どちらも上に示したエントリを参照しません。
カスタムプロバイダーに/connectとOtherを使用する場合は、同じプロバイダーIDを入力してください。認証情報だけではモデルカタログは定義されません。アダプターも確認してください。ここに示すv1互換アダプターはChat Completionsを使用します。Responsesエンドポイントには適切なアダプターが必要です。
3. v1とv2の設定を分離する
v2プロバイダードキュメントでは、v1のprovider、npm、optionsではなく、providers、package、settingsを使用します。前のブロックを変更せずにv2設定へコピーするのではなく、バージョン固有のセットアップを使用してください。
v2では、モデルのマップキーが上流のmodelIDと異なる場合もあります。マップにcoderが含まれ、上流モデルupstream/coder-v2を送信するなら、プロバイダーcompanyに対してcompany/coderを選択してください。選択を上流の名前に変更すると、設定されたエイリアスを迂回します。
4. どの設定が優先されるか確認する
OpenCodeは設定ソースを統合します。プロジェクトファイルがグローバルモデルを上書きする場合があり、カスタムパス、インライン設定、管理対象設定も影響することがあります。失敗するプロジェクトのファイル、グローバル設定、設定された上書きを確認してください。プロバイダーの許可リストや無効化されたプロバイダーのエントリも確認します。
対象を絞った変更を1つ行い、影響を受けるプロセスを再起動して、モデルを再度一覧表示します。モデルが利用可能になったものの、最初のリクエストがHTTPエラーを返す場合は、その新しいエラーに従ってください。診断中は元のファイルとセッションデータを保持してください。データディレクトリ全体を削除すると、間違ったモデル参照を直せないまま認証情報や履歴を失う可能性があります。
短いリクエストで仕上げる
選択が解決したら、リポジトリ作業の前に短いプロンプトを1つ試してください。意図したプロバイダーがそれを受け取り、想定したモデルを記録していることを確認します。それでも失敗する場合は、バージョン、サニタイズした設定、正確なエラー、関連するログ抜粋を収集してください。共有する前に、ログにキーやプロジェクト内容が含まれていないか確認します。
Kunavoについては、OpenCode統合ガイドに進み、使用記録を確認してください。現在のClaude Sonnet 5料金は、100万トークンあたり入力$1.40、出力$7.00です。価格比較が役立つのは、クライアントが意図した経路を選択できるようになってからです。
よくある質問
OpenCodeのProviderModelNotFoundErrorは何を意味しますか?
OpenCodeが選択したプロバイダーとモデルの組み合わせを解決できないか、モデルアダプターがそのモデルを解決できません。残高やAPIキーの問題と判断する前に、読み込まれたプロバイダーID、モデルキー、アクティブな設定を確認してください。401などのプロバイダーからのHTTPレスポンスは、別の診断分岐です。
APIキーを追加したのにカスタムモデルが追加されないのはなぜですか?
保存された認証情報とプロバイダー/モデル定義は、異なる目的を持ちます。v1のカスタムプロバイダーフローでは、/connectから入力するプロバイダーIDが設定キーと一致し、モデルがそのプロバイダーのmodelsマップで宣言されている必要があります。
opencode.jsonではproviderとprovidersのどちらを使うべきですか?
インストールしているバージョンのドキュメントに合わせてください。v1ドキュメントでは、npmとoptionsとともにproviderを使用します。v2ドキュメントでは、packageとsettingsとともにprovidersを使用します。2つの形式を混在させても信頼できる移行にはなりません。対応するスキーマとプロバイダーガイドに従ってください。
モデルがあるプロジェクトでは動くのに、別のプロジェクトでは動かないのはなぜですか?
プロジェクト設定はグローバル設定を上書きする場合があり、環境設定、インライン設定、管理対象設定も結果に影響することがあります。失敗するプロジェクトの作業ディレクトリから、選択したモデルとプロバイダー設定を確認してください。デスクトップクライアントが別のサーバーに接続している場合は、そのサーバーの設定も確認してください。
公式ドキュメントとプロバイダーソースの確認日:2026年9月17日。この例は設定の識別情報を説明するもので、エンドツーエンドのタスクベンチマークではありません。