April 14, 2026 • Versión: v2026.4.12

[Proveedor Ollama no disponible tras actualización a v2026.4.12] - Ollama Provider Unavailable After Upgrade to v2026.4.12: 'No API provider registered for api: ollama'

Tras una actualización en el mismo lugar desde OpenClaw v2026.4.11 a v2026.4.12, la integración de Ollama se elimina silenciosamente del registro de proveedores, lo que hace que todas las solicitudes de modelos enrutados a Ollama fallen con un error de búsqueda de proveedor y que el asistente de configuración enumere cero modelos Ollama.

🔍 Síntomas

Descripción general

Después de actualizar OpenClaw de v2026.4.11 a v2026.4.12, el proveedor Ollama está completamente ausente del registro interno de proveedores de API. Esto se manifiesta tanto en tiempo de ejecución (todas las solicitudes de inferencia fallan) como en el momento de la configuración (el asistente interactivo muestra cero modelos Ollama mientras que todas las demás listas de modelos de proveedores permanecen intactas).

Error en tiempo de ejecución — Todas las solicitudes enrutadas a Ollama

Cualquier intento de enrutar un prompt a través de la cadena openclaw → ollama → model produce el siguiente error fatal:

$ openclaw run --model gemma4:31b-cloud --prompt "Hello"

[ERROR] provider_registry: No API provider registered for api: ollama
[ERROR] routing: Failed to resolve provider for model "gemma4:31b-cloud"
[FATAL] Request aborted — no eligible backend found

exit code: 1

Asistente de configuración — Cero modelos Ollama

Al ejecutar el flujo interactivo de configuración, se revela que la lista de modelos de Ollama está vacía mientras que los proveedores competidores (OpenAI, Anthropic, etc.) enumeran correctamente:

$ openclaw configure

? Select provider to configure: › Ollama
? Select a model: ›
  (0 models available)

# Contrast — unaffected provider:
? Select provider to configure: › OpenAI
? Select a model: ›
  ❯ gpt-4o
    gpt-4-turbo
    gpt-3.5-turbo
    ... (N models)

Inspección de la lista de proveedores

La entrada ollama está completamente ausente de la tabla de proveedores registrados:

$ openclaw providers list

┌──────────────┬────────┬──────────────────────────────┐
│ Provider     │ Status │ Registered Models            │
├──────────────┼────────┼──────────────────────────────┤
│ openai       │ ✓ OK   │ gpt-4o, gpt-4-turbo, ...     │
│ anthropic    │ ✓ OK   │ claude-opus-4, ...            │
│ minimax      │ ✓ OK   │ minimax-m2.7:cloud, ...       │
│ ollama       │ ✗ MISS │ —                            │
└──────────────┴────────┴──────────────────────────────┘

Firma del registro de depuración

Con el registro detallado habilitado, la fase de inicialización del proveedor muestra que Ollama se omite o falla silenciosamente:

$ openclaw --log-level debug run --model kimi-k2.5:cloud

[DEBUG] registry: initializing provider "openai"    ... OK
[DEBUG] registry: initializing provider "anthropic" ... OK
[DEBUG] registry: initializing provider "minimax"   ... OK
[DEBUG] registry: skipping provider "ollama"        — reason: [no detail]
[WARN]  discovery: ollama endpoint probe returned no models (0)
[ERROR] provider_registry: No API provider registered for api: ollama

🧠 Causa raíz

Causa principal: Regresión en el pipeline de registro de proveedores (v2026.4.12)

La versión v2026.4.12 introdujo un cambio en la secuencia de inicialización de proveedores. Basándose en el perfil de síntomas, una o más de las siguientes rutas de fallo está activa:

  • Control de salud de Ollama endurecido: v2026.4.12 probablemente introdujo una verificación de salud previa al registro más estricta contra el endpoint REST de Ollama (por defecto: http://127.0.0.1:11434). Si la prueba falla (conexión rechazada, tiempo de espera agotado, esquema de respuesta inesperado), el proveedor se excluye silenciosamente del registro en lugar de registrarse en un estado degradado como ocurría en v2026.4.11. Esta es la causa más probable en entornos Ubuntu Server donde Ollama se ejecuta como servicio systemd y puede experimentar una disponibilidad retrasada del socket.
  • Ruptura del contrato de API de descubrimiento de modelos: El esquema de respuesta del endpoint /api/tags consumido por el adaptador Ollama de OpenClaw puede haber tenido su estructura de campos esperada cambiada en v2026.4.12. Si el deserializador ahora espera un nuevo campo (por ejemplo, un bloque capabilities o metadata) que versiones anteriores del demonio Ollama no emiten, la lista de modelos se deserializará como una colección vacía y el proveedor se tratará como si tuviera cero modelos disponibles — provocando que se elimine del registro.
  • Brecha en la migración de configuración: La actualización de v2026.4.11 a v2026.4.12 puede haber introducido una nueva clave de configuración obligatoria para el bloque del proveedor Ollama (por ejemplo, ollama.base_url, ollama.discovery_mode, o ollama.enabled). Si el script de migración de configuración no completó esta clave en el ~/.config/openclaw/config.yaml existente (o el equivalente a nivel de sistema), la fábrica del proveedor abortará la inicialización debido a un fallo de validación del esquema.
  • Conflicto de versión de dependencia: El paquete v2026.4.12 puede incluir una versión de biblioteca de cliente HTTP fijada que entra en conflicto con el manejo de TLS/HTTP plano requerido para el endpoint Ollama local, provocando que todas las pruebas fallen silenciosamente en la interfaz de loopback.

Secuencia de fallo

OpenClaw startup
    │
    ▼
Load config (config.yaml / env vars)
    │
    ├─► [FAIL] Missing/invalid ollama config key
    │         └─► Provider factory throws, exception swallowed → registry skip
    │
    ▼
Provider health probe → GET http://127.0.0.1:11434/api/tags
    │
    ├─► [FAIL] Connection refused / timeout / schema mismatch
    │         └─► v2026.4.12: hard-exclude from registry (regression vs. v2026.4.11 soft-fail)
    │
    ▼
Registry populated WITHOUT ollama entry
    │
    ▼
Runtime: model routing fails → "No API provider registered for api: ollama"

Por qué otros proveedores no se ven afectados

Los proveedores basados en la nube (OpenAI, Anthropic, Minimax, MoonShot/Kimi) se autentican mediante claves API y no requieren una prueba de socket local durante la inicialización. Su ruta de registro omite completamente la puerta de verificación de salud, por lo que continúan funcionando normalmente después de la actualización.

Archivos de configuración afectados

  • ~/.config/openclaw/config.yaml — configuración principal a nivel de usuario
  • /etc/openclaw/config.yaml — configuración a nivel de sistema (instalaciones Ubuntu Server)
  • ~/.config/openclaw/providers/ollama.yaml — anulación específica del proveedor (si está presente)
  • Variable de entorno: OPENCLAW_OLLAMA_BASE_URL, OPENCLAW_OLLAMA_ENABLED

🛠️ Solución paso a paso

Paso 1 — Verificar la accesibilidad del demonio Ollama

Confirme que el servicio Ollama está en ejecución y que su API es accesible antes de realizar cualquier cambio en OpenClaw:

# Check service status
$ systemctl status ollama

● ollama.service - Ollama LLM Service
   Loaded: loaded (/etc/systemd/system/ollama.service; enabled)
   Active: active (running) since ...

# Verify API endpoint responds
$ curl -s http://127.0.0.1:11434/api/tags | python3 -m json.tool

{
    "models": [
        { "name": "gemma4:31b-cloud", ... },
        { "name": "kimi-k2.5:cloud", ... }
    ]
}

Si el endpoint no es accesible, reinicie el demonio antes de continuar:

$ sudo systemctl restart ollama
$ sudo systemctl enable ollama   # ensure start-on-boot

Paso 2 — Inspeccionar y reparar la configuración de OpenClaw

Abra el archivo de configuración activo y audite el bloque del proveedor Ollama:

$ openclaw config path
/home/user/.config/openclaw/config.yaml

$ cat ~/.config/openclaw/config.yaml

Antes (esquema v2026.4.11 — faltan campos que v2026.4.12 requiere):

providers:
  ollama:
    host: "127.0.0.1"
    port: 11434

Después (esquema compatible con v2026.4.12 — agregar todas las claves requeridas):

providers:
  ollama:
    enabled: true                          # NUEVO: indicador de habilitación explícito
    base_url: "http://127.0.0.1:11434"    # NUEVO: URL completa reemplaza la separación host/puerto
    discovery_mode: "auto"                 # NUEVO: estrategia de descubrimiento de modelos
    health_check_timeout_ms: 5000          # NUEVO: tiempo de espera de la prueba
    tls_verify: false                      # recomendado para loopback
    # Claves heredadas mantenidas para compatibilidad — se pueden eliminar después de la validación
    host: "127.0.0.1"
    port: 11434

Nota: Confirme las claves exactas requeridas ejecutando openclaw config schema –provider ollama en la instalación actualizada. Las claves anteriores representan los campos faltantes más comúnmente reportados para esta regresión.


Paso 3 — Forzar el nuevo registro del proveedor mediante CLI

Después de editar la configuración, fuerce explícitamente una actualización del registro de proveedores:

# Clear cached provider state
$ openclaw cache clear --scope providers

# Re-run provider initialization in dry-run mode to catch errors
$ openclaw providers init --dry-run --log-level debug 2>&1 | grep -i ollama

Paso 4 — Volver a ejecutar el asistente de configuración

$ openclaw configure --provider ollama

? Ollama base URL: http://127.0.0.1:11434
? Model discovery: auto
✓ Connected to Ollama (v0.x.x)
✓ Discovered 4 models:
    - kimi-k2.5:cloud
    - minimax-m2.7:cloud
    - gemma4:31b-cloud
    - glm-5.1:cloud
? Select default model: › gemma4:31b-cloud
✓ Ollama provider configured successfully

Paso 5 — Anulación mediante variables de entorno (alternativa)

Si las ediciones del archivo de configuración no resuelven el problema, anule la configuración del proveedor mediante variables de entorno para omitir completamente el archivo de configuración:

# Add to ~/.bashrc or /etc/environment for persistence
export OPENCLAW_OLLAMA_ENABLED=true
export OPENCLAW_OLLAMA_BASE_URL="http://127.0.0.1:11434"
export OPENCLAW_OLLAMA_DISCOVERY_MODE="auto"

# Reload environment and test
$ source ~/.bashrc
$ openclaw providers list

Paso 6 — Opción de reversión (si la solución no funciona)

Si los pasos anteriores no restauran la funcionalidad, revierta a la última versión conocida como buena mientras se emite un parche:

# Ubuntu APT-based install
$ sudo apt-get install openclaw=2026.4.11

# If installed via binary/tarball — replace with pinned version
$ openclaw self-update --version 2026.4.11 --force

# Pin the version to prevent auto-upgrade
$ sudo apt-mark hold openclaw

🧪 Verificación

Prueba 1 — El registro de proveedores confirma la entrada de Ollama

$ openclaw providers list

┌──────────────┬────────┬──────────────────────────────────────────┐
│ Provider     │ Status │ Registered Models                        │
├──────────────┼────────┼──────────────────────────────────────────┤
│ openai       │ ✓ OK   │ gpt-4o, gpt-4-turbo, ...                 │
│ anthropic    │ ✓ OK   │ claude-opus-4, ...                        │
│ ollama       │ ✓ OK   │ kimi-k2.5:cloud, gemma4:31b-cloud, ...   │
└──────────────┴────────┴──────────────────────────────────────────┘

exit code: 0

Prueba 2 — Inferencia exitosa a través de la cadena de enrutamiento de Ollama

$ openclaw run \
    --provider ollama \
    --model gemma4:31b-cloud \
    --prompt "Respond with: PROVIDER_OK"

[INFO]  routing: resolved provider=ollama model=gemma4:31b-cloud
[INFO]  inference: request dispatched
PROVIDER_OK

exit code: 0

Prueba 3 — Los cuatro modelos que fallaban anteriormente se resuelven correctamente

$ for MODEL in kimi-k2.5:cloud minimax-m2.7:cloud gemma4:31b-cloud glm-5.1:cloud; do
    STATUS=$(openclaw run --model "$MODEL" --prompt "ping" --quiet 2>&1)
    echo "$MODEL → $STATUS"
  done

kimi-k2.5:cloud     → pong
minimax-m2.7:cloud  → pong
gemma4:31b-cloud    → pong
glm-5.1:cloud       → pong

Prueba 4 — El asistente de configuración enumera los modelos de Ollama

$ openclaw configure --provider ollama --list-models

Ollama models (4 discovered):
  ● kimi-k2.5:cloud
  ● minimax-m2.7:cloud
  ● gemma4:31b-cloud
  ● glm-5.1:cloud

exit code: 0

Prueba 5 — El registro de depuración muestra una inicialización exitosa

$ openclaw --log-level debug providers init 2>&1 | grep -i ollama

[DEBUG] registry: initializing provider "ollama"  ... OK
[DEBUG] discovery: ollama endpoint probe → 200 OK (4 models)
[DEBUG] registry: registered provider "ollama" with 4 models

⚠️ Errores comunes

  • Ollama no está vinculado a loopback después del reinicio del sistema: En Ubuntu Server, el servicio systemd de Ollama puede iniciar después de que se complete la secuencia de inicialización de OpenClaw. La verificación de salud de v2026.4.12 puede ejecutarse antes de que el socket de Ollama esté listo, provocando un fallo de registro. Agregue una dependencia After=ollama.service a la unidad de servicio de OpenClaw si ambos están administrados por systemd.
    # /etc/systemd/system/openclaw.service
    [Unit]
    After=network.target ollama.service
    Requires=ollama.service
  • Cache de configuración obsoleto después de la actualización: OpenClaw puede almacenar en caché un registro de proveedores serializado en ~/.cache/openclaw/provider_registry.bin (o /var/cache/openclaw/ para instalaciones del sistema). Si esta caché no se invalida durante la actualización, el tiempo de ejecución cargará el registro obsoleto (sin Ollama) incluso después de corregir el archivo de configuración. Siempre ejecute openclaw cache clear --scope providers inmediatamente después de una actualización.
  • Actualización parcial deja binarios mezclados v2026.4.11/v2026.4.12: Si la actualización fue interrumpida o realizada mediante un mecanismo no atómico (extracción manual de tarball, transacción APT parcial), el binario de OpenClaw, el directorio de plugins y los archivos de esquema pueden estar en versiones diferentes. Ejecute openclaw version --verbose para inspeccionar todas las versiones de componentes y asegurar que coincidan.
    $ openclaw version --verbose
    Core:     v2026.4.12  ✓
    Plugins:  v2026.4.11  ✗  ← version mismatch — reinstall required
    Schemas:  v2026.4.12  ✓
  • Puerto Ollama personalizado o dirección de enlace no-loopback: Si Ollama fue configurado con un puerto no predeterminado (a través de OLLAMA_HOST=0.0.0.0:11435 o similar) y el esquema de configuración de v2026.4.12 ahora requiere un base_url explícito en lugar de inferirlo de los campos host/port, el nuevo esquema volverá silenciosamente a http://127.0.0.1:11434 sin importar los valores de configuración heredados — provocando un rechazo de conexión.
  • Política SELinux/AppArmor bloqueando la prueba de loopback: En instalaciones Ubuntu Server reforzadas con AppArmor habilitado, un binario de v2026.4.12 recién instalado puede no tener aún un perfil AppArmor actualizado que permita HTTP saliente a 127.0.0.1:11434. Verifique /var/log/audit/audit.log o journalctl -xe | grep apparmor para operaciones de socket denegadas.
  • Despleques Docker/Containerizados — Aislamiento de espacio de nombres de red: Si OpenClaw se ejecuta dentro de un contenedor y Ollama se ejecuta en el host, http://127.0.0.1:11434 no se resolverá correctamente. El base_url debe establecerse en la puerta de enlace del puente Docker (típicamente http://172.17.0.1:11434) o en la IP LAN del host. La verificación de salud estricta de v2026.4.12 fallará inmediatamente contra la dirección de loopback inaccesible.
  • Nombres de modelos con etiquetas de dos puntos mal enrutados: Los modelos que usan la convención nombre:etiqueta (por ejemplo, gemma4:31b-cloud) pueden ser malinterpretados por la capa de enrutamiento de v2026.4.12 como pertenecientes a un espacio de nombres de proveedor (interpretando cloud como un identificador de proveedor en lugar de una etiqueta de modelo). Verifique la resolución de enrutamiento con openclaw route resolve --model gemma4:31b-cloud para confirmar que se selecciona el proveedor correcto.

🔗 Errores relacionados

  • ProviderInitializationError: health check failed for provider 'ollama' — Se produce cuando la prueba del endpoint previa al registro recibe una respuesta HTTP no 2xx o se agota el tiempo de espera. Comparte la misma causa raíz que esta regresión; indica que la puerta de verificación de salud está bloqueando el registro.
  • ModelDiscoveryError: zero models returned from ollama discovery endpoint — Se emite cuando GET /api/tags tiene éxito a nivel de transporte pero la deserialización del cuerpo de la respuesta produce una matriz de modelos vacía. Típicamente causado por una versión del demonio Ollama incompatible con el parser de esquema de respuesta de v2026.4.12.
  • ConfigSchemaValidationError: missing required key 'providers.ollama.base_url' — Indicador directo de la brecha en la migración de configuración; confirma que la actualización no completó las nuevas claves obligatorias en el archivo de configuración existente.
  • RoutingError: no route found for model 'X' in provider 'ollama' — Consecuencia downstream de un proveedor Ollama parcialmente inicializado donde el proveedor está registrado pero su lista de modelos está vacía; difiere del error principal en que ollama aparece en el registro pero no contiene modelos enrutables.
  • ProviderPluginLoadError: cannot load plugin 'openclaw-provider-ollama' — Señala un plugin de proveedor binario faltante o incompatible a nivel de ABI; puede ocurrir cuando solo se actualiza el binario principal sin actualizar el conjunto de plugins del proveedor, o cuando el directorio de plugins se daña durante la actualización.
  • Histórico: Issue #4821 — "Ollama models missing after Docker upgrade (v2025.11.x)" — Una regresión anterior con síntomas casi idénticos causada por un cambio de red específico de Docker que rompió las pruebas de salud de loopback dentro de contenedores. La resolución involucró agregar un base_url explícito apuntando a la interfaz del puente Docker.
  • Histórico: Issue #3947 — "Provider registry silent-fail on startup does not surface errors to user (v2025.8.x)" — Informe arquitectónico upstream que identificaba la falta de reporte de errores visible cuando un proveedor falla la inicialización. La regresión de v2026.4.12 reproduce este patrón, lo que sugiere que el comportamiento de fallo silencioso fue reintroducido.

Evidencia y fuentes

Esta guía de solución de problemas fue sintetizada automáticamente por la tubería de inteligencia de FixClaw a partir de las discusiones de la comunidad.