🚨 Playbook: La API está Caída (Error 500 / Timeout)
Si el frontend reporta masivamente "Error de conexión" o "Status 500", sigue estos pasos exactos (no saltes ninguno).
1. Triage Inmediato
- ¿Es solo un endpoint, o toda la API?
- Haz curl manual o Postman:
curl -I https://api.tudominio.com/health - Si el status es
522o524(Cloudflare Timeout): El problema es que el origen (o Supabase) está bloqueando a Cloudflare o demorando demasiado. - Si el status es
500: El código del Worker falló internamente.
2. Diagnóstico del Error 500
- Lanza los logs en vivo:
npx wrangler tail --env production - Dispara la petición problemática.
- Observa la excepción exacta en consola.
- ¿Falta una variable de entorno en producción que sí está en local? Verifica con
npx wrangler secret list. - ¿Cambió la firma de respuesta de Supabase?
- ¿Falta una variable de entorno en producción que sí está en local? Verifica con
3. Diagnóstico de Timeouts
Si el Worker no tira excepciones pero se queda colgado, 95% de las veces es Supabase.
- Revisa el estado de la base de datos (Supabase Dashboard -> Database -> Health).
- Verifica si excediste el límite de conexiones concurrentes en Supabase (Connection Pooling). El Worker debe estar configurado para usar IPv4 pooling, no conexiones directas al puerto 5432.
4. Resolución / Mitigación Rápida
- Si es un deploy malo reciente: Rollback a la versión anterior con Wrangler (ver
07_DevOps/DEPLOY_AND_FAILURES_STANDARD.md). - Si es tráfico masivo tirando la DB: Activa Cache de lectura urgente en el Worker en el endpoint afectado, devolviendo la versión estancada (Stale-while-revalidate) mientras la DB se recupera.