Pour l’erreur de fournisseur ou de modèle introuvable d’OpenCode, commencez par faire correspondre le modèle sélectionné aux ID de fournisseur et de modèle effectivement chargés par OpenCode. La référence prend généralement la forme providerId/modelId. Une clé API correcte ne peut pas corriger un ID mal orthographié, un modèle personnalisé non déclaré ou un fichier de configuration que le processus en cours ne lit jamais.
Suivre l’erreur, pas seulement l’expression « problème de fournisseur »
| Ce que vous voyez | Première branche à examiner |
|---|---|
ProviderModelNotFoundError | Identité du fournisseur/modèle, catalogue chargé et adaptateur du modèle |
| v2 : modèle indisponible | Fournisseur inactif, modèle absent ou désactivé, découverte ou alias modifié |
ProviderInitError | Package du fournisseur et configuration d’initialisation |
| HTTP 401 ou 403 du point de terminaison | Identifiants, hôte et autorisations du compte |
| HTTP 429 ou message de facturation | Limites de débit et de dépenses du fournisseur qui répond |
Le guide officiel de dépannage oriente les erreurs de modèle introuvable vers les références de modèle. Dans le code source du fournisseur, la recherche vérifie à la fois l’entrée du fournisseur et sa map de modèles. La même erreur peut également encapsuler une erreur de modèle manquant de l’adaptateur. Notez le message exact avant de modifier les identifiants ou d’acheter davantage de crédit.
1. Identifier la version et le modèle sélectionné
Effectuez ces vérifications depuis le projet où l’échec se produit. Si l’application de bureau utilise un autre serveur, comparez sa version et sa configuration à celles de cette installation du terminal :
opencode --version
opencode models
opencode auth listTrouvez la référence complète du modèle dans la liste, puis comparez-la caractère par caractère à votre sélection. Le préfixe du fournisseur fait partie de l’identité. Un modèle proposé par une passerelle personnalisée ne devient pas le fournisseur Anthropic intégré simplement parce que son nom contient Claude.
N’interprétez pas un identifiant enregistré comme la preuve d’une authentification distante réussie. Il prouve seulement qu’un identifiant existe localement ; le point de terminaison doit encore l’accepter lors de l’envoi d’une requête.
2. Corriger la paire fournisseur/modèle
Cet exemple utilise le format de fournisseur v1 et illustre les trois identifiants correspondants. Définissez la variable d’environnement référencée dans le processus qui lance OpenCode, ou utilisez le flux d’identifiants documenté. Fusionnez les champs pertinents dans votre configuration au lieu d’écraser les paramètres sans rapport :
{
"$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"
}
}
}
}
}Ici, kunavo est la clé du fournisseur et claude-sonnet-5 la clé du modèle. La sélection est donc kunavo/claude-sonnet-5. Sélectionner anthropic/claude-sonnet-5 choisit un autre fournisseur ; sélectionner Kunavo/Claude Sonnet 5 remplace les clés de recherche par des noms d’affichage. Aucun des deux ne fait référence à l’entrée présentée ci-dessus.
Avec /connect et Other pour un fournisseur personnalisé, saisissez le même ID de fournisseur. Les identifiants ne définissent pas à eux seuls le catalogue de modèles. Vérifiez également l’adaptateur : l’adaptateur compatible v1 présenté ici utilise Chat Completions ; un point de terminaison Responses nécessite l’adaptateur approprié.
3. Séparer les configurations v1 et v2
La documentation des fournisseurs v2 utilise providers, package et settings, à la place de provider, npm et options en v1. Utilisez sa procédure de configuration propre à la version au lieu de copier le bloc précédent tel quel dans une configuration v2.
Dans v2, la clé de la map d’un modèle peut également différer de modelID en amont. Si la map contient coder et transmet le modèle amont upstream/coder-v2, sélectionnez company/coder pour le fournisseur company. Remplacer la sélection par le nom amont contournerait l’alias configuré.
4. Vérifier quelle configuration prévaut
OpenCode fusionne les sources de configuration. Un fichier de projet peut remplacer le modèle global ; les chemins personnalisés, la configuration inline et les paramètres gérés peuvent également intervenir. Examinez le fichier du projet en échec, la configuration globale et les éventuelles substitutions configurées. Vérifiez les listes de fournisseurs autorisés ou les entrées désactivant des fournisseurs.
Effectuez une modification ciblée, redémarrez le processus concerné et réaffichez la liste des modèles. Si le modèle est désormais disponible mais que sa première requête renvoie une erreur HTTP, suivez cette nouvelle erreur. Conservez les fichiers et les données de session d’origine pendant le diagnostic ; supprimer tout le répertoire de données peut effacer les identifiants et l’historique sans corriger une référence de modèle incorrecte.
Terminer par une petite requête
Une fois la sélection résolue, essayez un prompt court avant une tâche sur le dépôt. Confirmez que le fournisseur attendu le reçoit et enregistre le modèle attendu. Si l’échec persiste, recueillez la version, la configuration assainie, l’erreur exacte et l’extrait de journal pertinent. Vérifiez que les journaux ne contiennent pas de clés ni de contenu du projet avant de les partager.
Pour Kunavo, poursuivez avec le guide d’intégration d’OpenCode et consultez votre historique d’utilisation. Le tarif actuel de Claude Sonnet 5 est de $1.40 en entrée et $7.00 en sortie par million de jetons. Une comparaison des prix devient utile une fois que le client sélectionne le chemin prévu.
Questions fréquentes
Que signifie ProviderModelNotFoundError dans OpenCode ?
OpenCode ne parvient pas à résoudre la paire fournisseur/modèle sélectionnée, ou son adaptateur de modèle ne parvient pas à résoudre ce modèle. Vérifiez l’ID du fournisseur chargé, la clé du modèle et la configuration active avant de l’attribuer à un problème de solde ou de clé API. Une réponse HTTP du fournisseur telle que 401 constitue une branche de diagnostic différente.
Pourquoi l’ajout de ma clé API n’a-t-il pas ajouté le modèle personnalisé ?
Un identifiant enregistré et une définition de fournisseur/modèle ont des fonctions différentes. Dans le flux v1 des fournisseurs personnalisés, l’ID de fournisseur saisi via /connect doit correspondre à la clé de configuration, et le modèle doit être déclaré dans la map models de ce fournisseur.
Dois-je utiliser provider ou providers dans opencode.json ?
Suivez la documentation correspondant à votre version installée. La documentation v1 utilise provider avec npm et options. La documentation v2 utilise providers avec package et settings. Mélanger les deux formats ne constitue pas une migration fiable ; suivez le schéma et le guide du fournisseur correspondants.
Pourquoi le modèle fonctionne-t-il dans un projet mais pas dans un autre ?
Les paramètres du projet peuvent remplacer les paramètres globaux, tandis que la configuration d’environnement, inline ou gérée peut également modifier le résultat. Vérifiez le modèle sélectionné et les paramètres du fournisseur depuis le répertoire de travail du projet en échec. Si un client de bureau se connecte à un autre serveur, examinez également la configuration de ce serveur.
Documentation officielle et source du fournisseur vérifiées le 17 septembre 2026. L’exemple explique l’identité de configuration ; il ne constitue pas un benchmark de tâche de bout en bout.