Saltar al contenido principal

Resolución de problemas

La API no arranca

Error: Invalid environment / JWT_SECRET
Define en .env las variables requeridas. Mínimo: DATABASE_URL, JWT_SECRET (mín. 16 caracteres). Copia .env.example si existe.

Error al hacer db push (columnas requeridas sin valor)
Si la base ya tenía datos y añadiste modelos o columnas obligatorias, usa npx prisma db push --force-reset (borra todos los datos) y luego npm run db:seed.

Puerto 4000 en uso
Cambia PORT en .env o arranca con PORT=4001 npm run dev.


La web de academias no carga datos

Todo funciona en mock pero con API no

  • Comprueba NEXT_PUBLIC_API_URL en .env.local (sin barra final).
  • Abre la pestaña Red del navegador: las peticiones deben ir a esa URL y devolver 200 (o el código esperado). Si hay CORS, verás el error en consola.
  • Asegúrate de que CORS_ORIGIN en la API incluya la URL del frontend (ej. http://localhost:3000).

401 en todas las peticiones tras login
La cookie auth_token no se está enviando o el backend la rechaza. Revisa que:

  • El login devuelve y guarda el token (o que la API setea la cookie).
  • Las peticiones usan credentials: 'include'.
  • El dominio/puerto del frontend está en CORS_ORIGIN y no hay restricciones de cookies por dominio.

404 en /api/...
La API está montada en API_BASE_PATH (por defecto /api). La URL base del frontend debe ser http://localhost:4000/api (o la que use tu backend), no solo http://localhost:4000.


El admin no conecta con la API

401 en /api/platform/academies
No hay cookie platform_auth o ha caducado. Vuelve a hacer login en el admin (platform@academy.com / platform123). Comprueba que el backend tenga el seed de PlatformUser.

CORS / cookie no enviada
El admin corre en un origen (ej. localhost:3001). Añade ese origen a CORS_ORIGIN en el backend (ej. http://localhost:3000,http://localhost:3001). Las peticiones deben ser con credentials: 'include'.

404 en /api/platform/...
Verifica que la API tenga montadas las rutas de platform (/api/platform/login, /api/platform/academies, etc.). Revisa app.ts y que el build del backend sea reciente.


Base de datos y seed

Seed falla: unique constraint / registro duplicado
En SQLite, algunos upsert dependen de claves únicas. Revisa que el slug (academy, plan) o el email (user, platformUser) no estén duplicados. Si es la primera vez, db push --force-reset y vuelve a ejecutar el seed.

No aparecen academias en el admin
Ejecuta el seed: cd academy-manager-api && npm run db:seed. Crea la academia default y el usuario platform.


Build y despliegue

Next.js: error de tipos en build
Ejecuta npm run typecheck en el proyecto afectado. Corrige los tipos que marque (imports, DTOs, etc.).

Docusaurus: enlaces rotos
Los enlaces internos deben ser relativos al baseUrl. Si desplegaste en un subpath (ej. /docs/), configura baseUrl en docusaurus.config.ts.

La documentación no se actualiza
Tras cambiar archivos en docs/, vuelve a ejecutar npm run build en docs-site. Si usas npm start, el hot reload debería reflejar cambios en markdown.