HTTP Status Codes

HTTP 417 Expectation Failed

417
MediumWeb ServerReference page

Expectation Failed — the server cannot satisfy the request's Expect header requirements

A 417 Expectation Failed response means the server could not meet the requirements expressed in the request's Expect header. It is most often associated with Expect: 100-continue, where the client wants confirmation before sending a potentially large request body.

Visual summary

A quick reference view of how HTTP 417 blocks a request at the negotiation stage when the server cannot meet the client's Expect condition.

HTTP 417 visual summary showing a client Expect handshake rejected by the server before the request body is sent
Visual summary: 417 means the server rejected the Expect handshake before the body was transmitted — the request body never left the client.

What 417 Means

The shortest useful reading of this status code.

Expectation Failed means the server cannot satisfy the request's Expect header requirements.

For Expect handling, the key distinction is that the request included a handshake requirement the server would not accept.

Quick read

Expectation handshake rejected

A 417 means the server would not honor the Expect behavior attached to the request.

Technical Context

How this status behaves without turning the page into a repair guide.

Expectation handshake

The core idea of 417 is that the request includes an explicit expectation about how the server should respond before normal processing continues. When the server cannot satisfy that expectation, it rejects the request at that stage instead of pretending the rest of the exchange can proceed normally.

Failure path

That makes 417 closely related to 100 Continue, but from the failure side of the same interaction. A 100 means the expectation path succeeded and the client can continue sending the body. A 417 means the negotiation around that expectation failed, usually because the server, proxy, or policy layer did not accept the Expect semantics attached to the request.

Related HTTP Codes

Nearby HTTP status codes help clarify how 417 differs inside the same response family.

Common Causes

Server or proxy does not support the client Expect header

The request asks for handshake behavior the receiving layer does not implement or accept.

Upstream policy refuses the 100-continue expectation

The server declines the expectation stage instead of allowing the client to continue under that contract.

Intermediary rewrites request semantics around Expect handling

A proxy or gateway changes how the expectation is interpreted before the origin finishes the negotiation.

Typical Scenarios

01

A client asks for 100-continue before an upload, but the origin or proxy does not honor that expectation

02

A gateway receives an Expect header policy it does not understand and rejects the request before the body is sent

03

An integration uses legacy Expect behavior while an intermediary handles request framing differently

What To Know

A 417 usually points to request-expectation negotiation rather than to a generic content or routing failure. The important distinction is that the problem arises before the normal request body flow is accepted under the expected handshake behavior.

Frequently Asked Questions

Common interpretation questions about HTTP 417.

Yes. That is the most common context. The status appears when the server cannot satisfy the expectation behavior the client attached to the request.

A 100 means the expectation succeeded and the client can continue. A 417 means the expectation negotiation failed before the normal request flow could continue.