Guía de solución de problemas comunes en Cortex.
Síntoma: docker compose up -d falla o los contenedores no se mantienen en ejecución.
Diagnóstico:
docker compose ps # Ver estado de contenedores
docker compose logs -f # Ver logs en tiempo realCausas comunes:
| Causa | Solución |
|---|---|
| Puerto ocupado | Verificar que los puertos 3000, 8088, 6333, 6379, 5432 estén libres |
| Docker sin memoria | Aumentar recursos asignados a Docker |
| Imagen corrupta | docker compose build --no-cache |
Síntoma: Cualquier comando de Docker falla con error de conexión.
Solución:
# Verificar que Docker está corriendo
sudo systemctl status docker
# Iniciar si está detenido
sudo systemctl start docker
# Verificar permisos del usuario
sudo usermod -aG docker $USER
# Cerrar sesión y volver a entrarSíntoma: El servicio API no inicia o el chat no genera respuestas.
Solución:
- Obtener token en https://huggingface.co/settings/tokens
- Agregar al archivo
.env:HUGGINGFACE_API_TOKEN=hf_xxxxxxxxxxxxxxxxxxxxx
- Reiniciar servicios:
docker compose restart cortex-api
Síntoma: Error de autenticación o servicios que no inician.
Solución:
# .env
CKA_JWT_SECRET=tu-clave-secreta-minimo-32-caracteresSeguridad: En producción, usa una clave generada aleatoriamente de al menos 64 caracteres.
Síntoma: Cambios en .env no tienen efecto.
Solución:
# Recrear contenedores para aplicar cambios
docker compose down
docker compose up -dSíntoma: El chat falla con error de conexión a base vectorial.
Diagnóstico:
# Verificar que Qdrant está corriendo
docker compose ps cortex-qdrant
# Verificar logs
docker compose logs cortex-qdrant
# Probar conexión
curl http://localhost:6333/healthSoluciones:
| Causa | Solución |
|---|---|
| Contenedor no iniciado | docker compose up -d cortex-qdrant |
| Host incorrecto | Verificar CKA_QDRANT_HOST=cortex-qdrant en .env |
| Red de Docker | docker network ls y verificar que existe la red |
Síntoma: Rate limiting o sesiones no funcionan.
Diagnóstico:
docker compose ps cortex-redis
docker compose logs cortex-redisSolución:
docker compose restart cortex-redisSíntoma: Login falla, usuarios no se pueden crear.
Diagnóstico:
docker compose ps cortex-postgres
docker compose logs cortex-postgresSoluciones:
| Causa | Solución |
|---|---|
| Primera ejecución | Esperar ~30s para inicialización de la DB |
| Volumen corrupto | docker compose down -v y reiniciar (ADVERTENCIA: borra datos) |
| Credenciales incorrectas | Verificar CKA_POSTGRES_* en .env |
Síntoma: Primera respuesta muy lenta.
Explicación: Es comportamiento normal. El modelo LLM necesita inicializarse en la primera consulta (cold start).
Mitigación:
- La UI muestra "Generando..." durante el proceso
- Respuestas subsiguientes son más rápidas (2-5s)
Síntoma: Error 500 o timeout en consultas.
Diagnóstico:
docker compose logs cortex-api | tail -50Causas comunes:
| Causa | Solución |
|---|---|
| Token de HuggingFace inválido | Verificar token y permisos en HuggingFace |
| Qdrant sin documentos | Ejecutar ingesta de documentos |
| Límite de rate en HuggingFace | Esperar o usar cuenta Pro |
Síntoma: El asistente responde pero sin contexto correcto.
Causas posibles:
| Causa | Solución |
|---|---|
| Documentos no indexados | Verificar en Admin > Documentos > Estado RAG |
| Contexto incorrecto | Verificar selector de contexto (Employee/Admin) |
| Embeddings desactualizados | Re-indexar documentos |
Síntoma: Login falla con credenciales correctas.
Diagnóstico:
# Verificar que PostgreSQL está corriendo y tiene datos
docker compose exec cortex-postgres psql -U cortex -d cortex -c "SELECT username FROM users;"Soluciones:
| Causa | Solución |
|---|---|
| Usuario no existe | Crear usuario desde Admin o first-run wizard |
| Contraseña incorrecta | Resetear desde Admin panel |
| Base de datos vacía | Verificar migración inicial |
Síntoma: Sesión se cierra inesperadamente.
Explicación: Los tokens JWT tienen expiración configurable (default: 24h).
Solución: Volver a hacer login.
Síntoma: Acción bloqueada con error de permisos.
Causa: El rol del usuario no tiene permisos para esa acción.
Solución: Verificar el rol asignado en Admin > Usuarios.
Síntoma: Errores de CORS en la consola del navegador.
Solución:
# .env
CKA_CORS_ORIGINS=https://tu-dominio.com,https://api.tu-dominio.comSíntoma: Navegador muestra advertencia de seguridad.
Solución con Cloudflare Tunnel:
cloudflared tunnel run --token YOUR_TOKENEl tunnel proporciona HTTPS automático sin configuración adicional.
Síntoma: Pods reiniciándose continuamente.
Diagnóstico:
kubectl logs -f deployment/cortex-api
kubectl describe pod cortex-api-xxxVerificar endpoints:
curl http://localhost:8088/health # Liveness
curl http://localhost:8088/ready # ReadinessSíntoma: En Admin > Documentos > Historial aparece error de parsing JSON.
Estado: Bug conocido en Beta. El historial de cargas está en desarrollo.
Workaround: Verificar estado de documentos en la pestaña "Estado RAG".
Síntoma: Botones [E], [D] no explican su función.
Estado: Mejora planificada para v1.0.0.
Referencia: Los botones son: [E] = Editar, [D] = Detalles.
Si el problema persiste:
-
Revisar logs completos:
docker compose logs > cortex-debug.log 2>&1
-
Verificar versión:
docker compose exec cortex-api python -c "import cortex_ka; print(cortex_ka.__version__)"
-
Reportar issue: GitHub Issues
Incluir:
- Versión de Cortex
- Sistema operativo
- Logs relevantes
- Pasos para reproducir