Preguntas

Error 417 – Falló la expectativa (Expectation Failed) Imprimir

  • 0

El error 417 aparece cuando el servidor no puede cumplir con la expectativa indicada por el cliente en la cabecera:

 
Expect: 100-continue

El cliente usa esta cabecera para decirle al servidor:
“Dime si está todo OK antes de enviarte el cuerpo completo de la solicitud.”

Si el servidor no puede aceptar esa expectativa o no la soporta, devuelve 417.


 Causas más comunes

  •  El servidor no soporta la cabecera Expect: 100-continue.

  •  El servidor rechaza la solicitud antes de recibir el cuerpo (body).

  •  Configuraciones incorrectas en proxies o balanceadores.

  •  Librerías HTTP que agregan Expect: 100-continue automáticamente.

  •  Envío de archivos grandes donde el cliente pregunta si puede continuar.

  •  El servidor o firewall considera la expectativa como sospechosa.

  •  El servidor requiere otros encabezados o condiciones que no se cumplen.


???? Soluciones recomendadas

1) Eliminar la cabecera Expect: 100-continue (la solución más común)

Muchos servidores simplemente no soportan esta expectativa.

En cURL:

 
curl -H "Expect:" -d "data=x" https://api.com/endpoint

En Axios:

 
axios.post(url, data, { headers: { 'Expect': '' } });

En Node.js con http:

 
const options = { headers: { Expect: '' } };

2) Configurar el servidor para aceptar 100-continue

En Nginx:

Nginx ignora esta cabecera por defecto.
Para evitar 417, permite manejarla adecuadamente o elimínala en el balanceador.

En Apache:

Asegura que mod_proxy o mod_http no bloqueen solicitudes con esta cabecera.


3) Desactivar expectativas automáticas en librerías

Algunas librerías envían Expect: 100-continue si el body es grande.

Ejemplos:

  • cURL

  • Python Requests

  • .NET HttpClient

Debes desactivarlo en configuraciones avanzadas.


4) Revisar si un proxy está interfiriendo

Los proxies corporativos suelen rechazar solicitudes con esta cabecera.

Solución:

  • Configurar el proxy para permitirla

  • O eliminar la cabecera desde la aplicación


5) Corregir solicitudes mal formadas

Si envías una expectativa inválida:

 
Expect: algo-raro

→ 417 inmediato.

Solo se admite normalmente:

 
Expect: 100-continue

6) Usar directamente una petición normal sin expectativa

En la mayoría de casos, enviar el body sin solicitar permiso previo es suficiente.


 Consejo Pro

El uso de Expect: 100-continue solo es útil cuando:

  • Envías archivos muy grandes

  • Quieres evitar subir todo el archivo si el servidor lo va a rechazar

Si no lo necesitas, elimínalo siempre.
Esto evita errores 417 y simplifica tus solicitudes.


¿Fue útil la respuesta?
Volver