Ante el error de proveedor o modelo no encontrado de OpenCode, primero haz coincidir el modelo seleccionado con los ID de proveedor y modelo que OpenCode cargó realmente. La referencia normalmente tiene la forma providerId/modelId. Una clave de API correcta no puede reparar un ID mal escrito, un modelo personalizado no declarado o un archivo de configuración que el proceso en ejecución nunca lee.
Sigue el error, no solo la frase «problema del proveedor»
| Lo que ves | Primera rama que debes inspeccionar |
|---|---|
ProviderModelNotFoundError | Identidad del proveedor/modelo, catálogo cargado y adaptador del modelo |
| v2: modelo no disponible | Proveedor inactivo, modelo ausente o desactivado, descubrimiento modificado o alias |
ProviderInitError | Paquete del proveedor y configuración de inicialización |
| HTTP 401 o 403 del endpoint | Credenciales, host y permisos de la cuenta |
| HTTP 429 o mensaje de facturación | Límites de velocidad y gasto del proveedor que responde |
La guía oficial de resolución de problemas orienta los errores de modelo no encontrado hacia las referencias de modelos. En el código fuente del proveedor, la búsqueda comprueba tanto la entrada del proveedor como su mapa de modelos. El mismo error también puede envolver un error de modelo ausente del adaptador. Captura el mensaje exacto antes de cambiar las credenciales o comprar más crédito.
1. Identifica la versión y el modelo seleccionado
Ejecuta estas comprobaciones desde el proyecto en el que se produce el fallo. Si la aplicación de escritorio utiliza otro servidor, compara su versión y configuración con esta instalación del terminal:
opencode --version
opencode models
opencode auth listBusca la referencia completa del modelo en la lista y compárala carácter por carácter con tu selección. El prefijo del proveedor forma parte de la identidad. Un modelo ofrecido mediante una pasarela personalizada no se convierte en el proveedor Anthropic integrado solo porque su nombre contenga Claude.
No interpretes una credencial guardada como prueba de autenticación remota correcta. Demuestra que existe una credencial localmente; el endpoint aún debe aceptarla cuando se realiza una solicitud.
2. Corrige el par proveedor/modelo
Este ejemplo utiliza el formato de proveedor de v1 y muestra los tres identificadores que deben coincidir. Define la variable de entorno referenciada en el proceso que inicia OpenCode o utiliza el flujo de credenciales documentado. Combina los campos relevantes con tu configuración en lugar de sobrescribir ajustes no relacionados:
{
"$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"
}
}
}
}
}Aquí, kunavo es la clave del proveedor y claude-sonnet-5 es la clave del modelo. Por tanto, la selección es kunavo/claude-sonnet-5. Seleccionar anthropic/claude-sonnet-5 elige otro proveedor; seleccionar Kunavo/Claude Sonnet 5 sustituye las claves de búsqueda por nombres visibles. Ninguna de las dos opciones hace referencia a la entrada mostrada arriba.
Al usar /connect y Other para un proveedor personalizado, introduce el mismo ID de proveedor. La credencial por sí sola no define el catálogo de modelos. Comprueba también el adaptador: el adaptador compatible con v1 mostrado aquí utiliza Chat Completions; un endpoint de Responses requiere el adaptador adecuado.
3. Mantén separadas las configuraciones de v1 y v2
La documentación de proveedores de v2 utiliza providers, package y settings, en lugar de provider, npm y options de v1. Usa la configuración específica de su versión en lugar de copiar sin cambios el bloque anterior a una configuración de v2.
En v2, la clave del mapa de un modelo también puede diferir de modelID del proveedor original. Si el mapa contiene coder y envía el modelo original upstream/coder-v2, elige company/coder para el proveedor company. Cambiar la selección al nombre original omitiría el alias configurado.
4. Comprueba qué configuración prevalece
OpenCode combina las fuentes de configuración. Un archivo de proyecto puede sustituir al modelo global; las rutas personalizadas, la configuración integrada y los ajustes administrados también pueden ser relevantes. Inspecciona el archivo del proyecto que falla, la configuración global y cualquier sustitución configurada. Comprueba las listas de proveedores permitidos o las entradas de proveedores desactivados.
Haz un único cambio específico, reinicia el proceso afectado y vuelve a enumerar los modelos. Si el modelo ya está disponible, pero su primera solicitud devuelve un error HTTP, sigue ese nuevo error. Conserva los archivos originales y los datos de la sesión durante el diagnóstico; eliminar todo el directorio de datos puede borrar credenciales e historial sin corregir una referencia de modelo incorrecta.
Termina con una solicitud pequeña
Cuando la selección se resuelva, prueba una indicación breve antes de realizar una tarea en el repositorio. Confirma que el proveedor previsto la recibe y registra el modelo esperado. Si sigue fallando, recopila la versión, la configuración saneada, el error exacto y el fragmento de registro relevante. Revisa los registros en busca de claves y contenido del proyecto antes de compartirlos.
Para Kunavo, continúa con la guía de integración de OpenCode y consulta tu registro de uso. La tarifa actual de Claude Sonnet 5 es $1.40 por millón de tokens de entrada y $7.00 por millón de tokens de salida. La comparación de precios resulta útil después de que el cliente seleccione la ruta prevista.
Preguntas frecuentes
¿Qué significa ProviderModelNotFoundError en OpenCode?
OpenCode no puede resolver el par proveedor/modelo seleccionado o el adaptador del modelo no puede resolver ese modelo. Comprueba el ID del proveedor cargado, la clave del modelo y la configuración activa antes de considerarlo un problema de saldo o de clave de API. Una respuesta HTTP del proveedor, como 401, pertenece a una rama de diagnóstico distinta.
¿Por qué añadir mi clave de API no añadió el modelo personalizado?
Una credencial guardada y una definición de proveedor/modelo cumplen funciones diferentes. En el flujo de proveedor personalizado de v1, el ID del proveedor introducido mediante /connect debe coincidir con la clave de configuración, y el modelo debe declararse en el mapa models de ese proveedor.
¿Debo usar provider o providers en opencode.json?
Sigue la documentación de la versión instalada. La documentación de v1 utiliza provider con npm y options. La documentación de v2 utiliza providers con package y settings. Mezclar ambos formatos no es una migración fiable; sigue el esquema y la guía del proveedor correspondientes.
¿Por qué el modelo funciona en un proyecto, pero no en otro?
La configuración del proyecto puede sustituir a la configuración global, y la configuración de entorno, integrada o administrada también puede afectar al resultado. Comprueba el modelo seleccionado y los ajustes del proveedor desde el directorio de trabajo del proyecto que falla. Si un cliente de escritorio se conecta a otro servidor, inspecciona también la configuración de ese servidor.
Documentación oficial y código fuente del proveedor comprobados el 17 de septiembre de 2026. El ejemplo explica la identidad de la configuración; no es una prueba comparativa completa de tareas.