What 100 means
A client that sends Expect: 100-continue waits for this interim response before uploading a large body, so a request the server would reject (wrong auth, too large) fails before the bytes are sent.
You will rarely see 100 in application logs; it is handled inside HTTP libraries and proxies. curl sends the Expect header automatically for bodies over 1024 bytes.
Common causes
- A client sent Expect: 100-continue and the server agreed to receive the body.
How to fix it
- Nothing to fix. If a legacy server hangs on it, disable the expectation in the client (curl: -H "Expect:").
What it looks like
A typical response:
HTTP/1.1 100 Continue HTTP/1.1 201 Created Content-Type: application/json
The same event in an nginx access log (the status is the number after the request line):
203.0.113.7 - - [10/Sep/2026:10:12:01 +0000] "GET /api/orders HTTP/1.1" 100 153 "-" "Mozilla/5.0"
Check it with curl
-i prints the status line and headers, and -w '%{http_code}' prints only the number, which is handy in scripts and health checks. Replace the URL with yours:
curl -sS -o /dev/null -w '%{http_code} %{time_total}s\n' https://example.com/api/orders
Compare what curl sees with what the browser sees. A different status from the same URL usually means a cache, a CDN edge or a cookie is in the way.
Investigating a run of 100s? Paste the log excerpt into Log Share to get line numbers, highlighting and an expiring link for whoever is on call with you.
Related status codes
101Switching Protocols: The server agrees to change protocol, almost always to a WebSocket.200OK: The request succeeded and the response carries the result.413Content Too Large: The request body exceeds what the server is willing to accept.417Expectation Failed: the server cannot meet the Expect header.
FAQ
Why does my upload wait a second before starting?
The client sent Expect: 100-continue and the server never answered 100; most clients give up waiting after one second and send the body anyway. Configure the server to answer, or drop the header.