🌐 Languages: 🇺🇸 English | 🇧🇷 Português (Brasil) | 🇪🇸 Español | 🇫🇷 Français | 🇮🇹 Italiano | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 Deutsch | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 العربية | 🇯🇵 日本語 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 Dansk | 🇫🇮 Suomi | 🇮🇱 עברית | 🇭🇺 Magyar | 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어 | 🇲🇾 Bahasa Melayu | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇵🇹 Português (Portugal) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 Slovenčina | 🇸🇪 Svenska | 🇵🇭 Filipino
Problemas comunes y soluciones para OmniRoute.
| Problema | Solución |
|---|---|
| El primer inicio de sesión no funciona | Marque INITIAL_PASSWORD en .env (predeterminado: 123456) |
| El panel se abre en el puerto incorrecto | Establecer PORT=20128 y NEXT_PUBLIC_BASE_URL=http://localhost:20128 |
No hay registros de solicitudes en logs/ |
Establecer ENABLE_REQUEST_LOGS=true |
| EACCES: permiso denegado | Establezca DATA_DIR=/path/to/writable/dir para anular ~/.omniroute |
| La estrategia de enrutamiento no se guarda | Actualización a v1.4.11+ (corrección del esquema Zod para la persistencia de la configuración) |
Causa: Cuota de proveedor agotada.
Arreglo:
- Verifique el rastreador de cuotas del panel
- Utilice un combo con niveles alternativos
- Cambiar al nivel más barato/gratuito
Causa: Cuota de suscripción agotada.
Arreglo:
- Agregar respaldo:
cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking - Utilice GLM/MiniMax como copia de seguridad económica
OmniRoute actualiza automáticamente los tokens. Si los problemas persisten:
- Panel de control → Proveedor → Reconectar
- Eliminar y volver a agregar la conexión del proveedor.
- Verifique que
BASE_URLapunte a su instancia en ejecución (por ejemplo,http://localhost:20128) - Verifique que
CLOUD_URLapunte a su punto final en la nube (por ejemplo,https://omniroute.dev). - Mantenga los valores
NEXT_PUBLIC_*alineados con los valores del lado del servidor
Síntoma: Unexpected token 'd'... en el punto final de la nube para llamadas que no son de transmisión.
Causa: Upstream devuelve la carga útil SSE mientras que el cliente espera JSON.
Solución alternativa: Utilice stream=true para llamadas directas en la nube. El tiempo de ejecución local incluye el respaldo SSE → JSON.
- Cree una clave nueva desde el panel local (
/api/keys) - Ejecute la sincronización en la nube: Habilitar nube → Sincronizar ahora
- Las claves antiguas o no sincronizadas aún pueden devolver
401en la nube
- Verifique los campos de tiempo de ejecución:
curl http://localhost:20128/api/cli-tools/runtime/codex | jq - Para el modo portátil: use el destino de imagen
runner-cli(CLI incluidas) - Para el modo de montaje del host: configure
CLI_EXTRA_PATHSy monte el directorio bin del host como de solo lectura - Si
installed=trueyrunnable=false: se encontró el binario pero falló la verificación de estado
curl -s http://localhost:20128/api/cli-tools/codex-settings | jq '{installed,runnable,commandPath,runtimeMode,reason}'
curl -s http://localhost:20128/api/cli-tools/claude-settings | jq '{installed,runnable,commandPath,runtimeMode,reason}'
curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed,runnable,commandPath,runtimeMode,reason}'- Verifique las estadísticas de uso en Panel → Uso
- Cambie el modelo principal a GLM/MiniMax
- Utilice el nivel gratuito (Gemini CLI, iFlow) para tareas no críticas
- Establezca presupuestos de costos por clave API: Panel → Claves API → Presupuesto
Establezca ENABLE_REQUEST_LOGS=true en su archivo .env. Los registros aparecen en el directorio logs/.
# Health dashboard
http://localhost:20128/dashboard/health
# API health check
curl http://localhost:20128/api/monitoring/health- Estado principal:
${DATA_DIR}/db.json(proveedores, combos, alias, claves, configuraciones) - Uso:
${DATA_DIR}/usage.json,${DATA_DIR}/log.txt,${DATA_DIR}/call_logs/ - Solicitar registros:
<repo>/logs/...(cuandoENABLE_REQUEST_LOGS=true)
Cuando el disyuntor de un proveedor está ABIERTO, las solicitudes se bloquean hasta que expire el tiempo de reutilización.
Arreglo:
- Vaya a Panel → Configuración → Resiliencia
- Verifique la tarjeta del disyuntor del proveedor afectado.
- Haga clic en Restablecer todo para borrar todos los interruptores o espere a que expire el tiempo de reutilización.
- Verifique que el proveedor esté realmente disponible antes de restablecer
Si un proveedor ingresa repetidamente al estado ABIERTO:
- Marque Panel → Estado → Estado del proveedor para ver el patrón de error.
- Vaya a Configuración → Resiliencia → Perfiles de proveedores y aumente el umbral de falla.
- Verifique si el proveedor ha cambiado los límites de API o requiere una nueva autenticación.
- Revise la telemetría de latencia: una latencia alta puede causar fallas basadas en el tiempo de espera
- Asegúrate de estar usando el prefijo correcto:
deepgram/nova-3oassemblyai/best - Verifique que el proveedor esté conectado en Panel → Proveedores
- Verifique los formatos de audio admitidos:
mp3,wav,m4a,flac,ogg,webm - Verifique que el tamaño del archivo esté dentro de los límites del proveedor (normalmente < 25 MB)
- Verifique la validez de la clave API del proveedor en la tarjeta del proveedor
Utilice Panel → Traductor para depurar problemas de traducción de formato:
| Modo | Cuándo utilizar |
|---|---|
| Parque infantil | Compare formatos de entrada/salida uno al lado del otro: pegue una solicitud fallida para ver cómo se traduce |
| Probador de chat | Envíe mensajes en vivo e inspeccione la carga útil completa de solicitud/respuesta, incluidos los encabezados |
| Banco de pruebas | Ejecute pruebas por lotes en combinaciones de formatos para encontrar qué traducciones no funcionan |
| Monitorización en vivo | Observe el flujo de solicitudes en tiempo real para detectar problemas de traducción intermitentes |
- Las etiquetas de pensamiento no aparecen: compruebe si el proveedor objetivo apoya el pensamiento y la configuración del presupuesto de pensamiento.
- Caídas de llamadas a herramientas: algunas traducciones de formatos pueden eliminar campos no admitidos; verificar en modo Patio de Juegos
- Falta el mensaje del sistema: Claude y Gemini manejan los mensajes del sistema de manera diferente; comprobar la salida de la traducción
- El SDK devuelve una cadena sin formato en lugar de un objeto — Corregido en v1.1.0: el desinfectante de respuesta ahora elimina los campos no estándar (
x_groq,usage_breakdown, etc.) que causan fallas de validación de Pydantic en el SDK de OpenAI - GLM/ERNIE rechaza el rol
system— Corregido en v1.1.0: el normalizador de roles fusiona automáticamente los mensajes del sistema con mensajes de usuario para modelos incompatibles developerrol no reconocido — Corregido en v1.1.0: convertido automáticamente asystempara proveedores que no son OpenAIjson_schemano funciona con Gemini — Corregido en v1.1.0:response_formatahora se convierte aresponseMimeType+responseSchemade Gemini
- El límite de velocidad automático solo se aplica a los proveedores de claves API (no a OAuth/suscripción)
- Verifique que Configuración → Resiliencia → Perfiles de proveedores tenga habilitado el límite de tasa automática
- Compruebe si el proveedor devuelve códigos de estado
429o encabezadosRetry-After
Los perfiles de proveedor admiten estas configuraciones:
- Retraso base: tiempo de espera inicial después del primer fallo (predeterminado: 1 s)
- Retraso máximo: límite máximo de tiempo de espera (predeterminado: 30 segundos)
- Multiplicador: cuánto aumentar el retraso por falla consecutiva (predeterminado: 2x)
Cuando muchas solicitudes simultáneas llegan a un proveedor de velocidad limitada, OmniRoute utiliza mutex + limitación de velocidad automática para serializar solicitudes y evitar fallas en cascada. Esto es automático para los proveedores de claves API.
- Problemas de GitHub: github.com/diegosouzapw/OmniRoute/issues
- Arquitectura: consulte OMNI_TOKEN_55 para obtener detalles internos
- Referencia de API: consulte OMNI_TOKEN_56 para conocer todos los puntos finales
- Panel de estado: marque Panel → Salud para ver el estado del sistema en tiempo real
- Traductor: use Panel → Traductor para depurar problemas de formato