El error 425 Too Early indica que el servidor se rehúsa a procesar la solicitud porque podría ser un riesgo de seguridad si se reenvía automáticamente.
Este código se introdujo para HTTP/2 y HTTP/3 y está relacionado con el manejo de 0-RTT en TLS, una técnica que permite que un cliente envíe solicitudes antes de completar la negociación segura completa.
Sin embargo, estas solicitudes pueden ser vulnerables a ataques de repetición (replay attacks).
En resumen:
El servidor dice:
“Tu solicitud llegó demasiado pronto. No la procesaré porque podría ser peligrosa si se repite.”
Causas más comunes
-
El cliente envía una solicitud usando 0-RTT (TLS early data).
-
El servidor detecta un posible ataque de repetición (replay attack).
-
El servidor está configurado para no aceptar solicitudes sensibles demasiado temprano.
-
Un proxy o CDN (como Cloudflare o AWS) rechaza solicitudes inseguras.
-
Clientes o navegadores reenviando una petición antes de que la sesión TLS esté completamente establecida.
Soluciones recomendadas
1) Reintentar la solicitud de manera normal (sin early data)
Los navegadores modernos ya lo hacen automáticamente.
El cliente debe reenviar la solicitud después de completar la negociación TLS.
2) Desactivar 0-RTT en el cliente (si es una app o API)
Ejemplo en curl:
En Node.js (HTTP/2):
3) Configurar el servidor para aceptar early data (si es seguro hacerlo)
Solo recomendado para:
-
Solicitudes idempotentes (GET, HEAD)
-
Peticiones de lectura sin consecuencias
Nginx:
Apache:
Soporte a través de módulos TLS específicos.
Nunca permitas early data para POST, PUT, DELETE, ya que pueden repetirse maliciosamente.
4) Corregir el tipo de solicitud
Si un cliente envía una operación destructiva (como una compra, transferencia o cambio de datos) usando early data → el servidor devolverá 425.
Solución:
Enviar solo solicitudes seguras en early data o desactivarlo.
5) Revisar configuración de Cloudflare u otros proxies
Cloudflare y CDNs rechazan por defecto early data en:
-
Formularios
-
APIs
-
Consultas sensibles
Puedes desactivar 0-RTT desde el panel si causa errores.
Consejo Pro
El 425 protege al servidor contra ataques donde:
-
Una petición maliciosa se reenvía múltiples veces
-
Se intenta repetir una operación crítica (compra, pago, actualización)
-
Un proxy reenvía datos antes de tiempo accidentalmente
Por eso, la recomendación general es:
Solo usar early data para lecturas
Evitar early data para escrituras o transacciones