Error Codes Wiki

HTTP 100 Continue Errors — Expect Header Request Flow Issues

Informational1xx informational

Overview

Fix HTTP 100 Continue flow errors where servers fail to respond to Expect headers, causing client timeouts and large upload failures.

Key Details

  • The Expect: 100-continue header asks the server to confirm it will accept the request before the client sends the body
  • This is useful for large uploads — the client can avoid sending a large body that will be rejected
  • The server responds with 100 Continue to proceed or 417 Expectation Failed to reject
  • Some servers and proxies do not properly support the 100 Continue flow
  • Clients typically wait a timeout period (1-2 seconds) for 100 Continue before sending the body anyway

Common Causes

  • Server not implementing 100 Continue support — ignoring the Expect header entirely
  • Proxy stripping the Expect header before forwarding to the backend server
  • Client timeout too short, sending the body before receiving the 100 Continue response
  • Load balancer not forwarding the 100 Continue response from the backend to the client

Steps

  1. 1Configure your server to handle the Expect: 100-continue header and respond with 100 or 417
  2. 2Ensure proxies forward the Expect header: in Nginx, use 'proxy_set_header Expect $http_expect;'
  3. 3Increase the client-side Expect timeout if the server is slow to respond
  4. 4If 100 Continue is not needed, disable it in your HTTP client library to avoid unnecessary delays
  5. 5Test with curl: 'curl -v -H "Expect: 100-continue" -d @largefile.dat https://your-server.com/upload'

Tags

expect100-continueuploadheaderflow-control

More in 1xx Informational

Frequently Asked Questions

curl automatically sends the Expect: 100-continue header for POST requests over 1024 bytes. It waits 1 second for a 100 Continue response before sending the body. Disable with -H 'Expect:'.