Retour aux guides
Dépannage·17 septembre 2026·Mis à jour le 30 septembre 2026·6 min de lecture

OpenCode : fournisseur ou modèle introuvable, guide de diagnostic

Faites correspondre le couple fournisseur/modèle sélectionné à la configuration chargée avant de modifier les clés ou d’acheter davantage de crédit.

Dernière vérification le .

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 voyezPremière branche à examiner
ProviderModelNotFoundErrorIdentité du fournisseur/modèle, catalogue chargé et adaptateur du modèle
v2 : modèle indisponibleFournisseur inactif, modèle absent ou désactivé, découverte ou alias modifié
ProviderInitErrorPackage du fournisseur et configuration d’initialisation
HTTP 401 ou 403 du point de terminaisonIdentifiants, hôte et autorisations du compte
HTTP 429 ou message de facturationLimites 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 :

Examiner la même installation et le même projet
opencode --version
opencode models
opencode auth list

Trouvez 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 :

opencode.json de style v1 — identité du fournisseur et du modèle
{
  "$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.