Un error 504 Gateway Timeout ocurre cuando un servidor actuando como gateway o proxy no recibe una respuesta temprana de un servidor upstream. A diferencia de 502 (respuesta inválida) o 503 (servidor no disponible), 504 específicamente indica que el servidor upstream fue muy lento para responder. Entender cómo encaja dentro del conjunto de códigos de estado HTTP ayuda a los equipos a diagnosticar más rápido—504 siempre significa un timeout en la capa del proxy, no un crash.

Qué Significa 504 Gateway Timeout
Per RFC 9110, 504 indica “el servidor, mientras actuaba como gateway o proxy, no recibió una respuesta temprana de un servidor upstream que necesitó acceder para completar la solicitud.”
504 vs 502 vs 503
| Código | Significado | Diferencia |
|---|---|---|
| 504 Gateway Timeout | Sin respuesta del upstream | Conexión establecida, esperó mucho |
| 502 Bad Gateway | Respuesta inválida del upstream | Obtuvo respuesta, pero estaba malformada |
| 503 Service Unavailable | Servidor no puede manejar solicitud | Servidor explícitamente rechazó o sobrecargado |
Causas Comunes de 504 Gateway Timeout
- Queries de Base de Datos Lentas
- Llamadas a APIs Externas
- Computación Pesada
- Timeout del Proxy Muy Corto
- Problemas de Red (alta latencia)
- Esgotamiento de Recursos
Troubleshooting de Errores 504
Paso 1: Identifica la Capa del Timeout
Paso 2: Verifica Logs de la Aplicación
Paso 3: Verifica Logs del Proxy/Gateway
En Azion, accede a Real-Time Events y filtra por status = 504. El campo upstream_response_time muestra exactamente cuánto esperó el edge antes de agotar el timeout configurado.
Paso 4: Verifica Performance de Base de Datos
Paso 5: Profilea Performance de la Aplicación
Cómo Corregir Errores 504
- Aumenta Timeouts (cuando es apropiado)
- Optimiza Operaciones Lentas
- Implementa Procesamiento Asíncrono
- Usa Respuestas Streaming
- Agrega Circuit Breakers
Preguntas Frecuentes
¿Cuál es la diferencia entre 504 y 502? 504 significa que el upstream no respondió a tiempo. 502 significa que el upstream respondió pero la respuesta era inválida.
¿Debo reintentar en 504? Sí, pero solo para métodos idempotentes (GET, PUT, DELETE). Usa backoff exponencial.
¿Cómo configuro timeouts en Kubernetes? Usa timeoutSeconds en probes y configura readinessProbe apropiadamente.
¿Cuál es un valor de timeout razonable? Depende de tu carga de trabajo. Llamadas API: 30-60s. Queries de base de datos: 5-30s. Uploads de archivos: mayor.