HTTPREF
← Back to status codes

HTTP Status Code

417 Expectation Failed

Client Error

The server cannot meet the requirements set in the Expect request header.

HTTP status code reference, response example, common causes, fixes, and related status codes.

What does HTTP 417 Expectation Failed mean?

HTTP 417 Expectation Failed is a status code sent by a server to indicate the result of an HTTP request.

Status codes help browsers, APIs, apps, and backend systems understand whether a request succeeded, failed, was redirected, or needs additional action.

In practice, HTTP 417 Expectation Failed usually appears when a server responds under specific request, validation, permission, or infrastructure conditions.

Response example

HTTP/1.1 417 Expectation Failed

HTTP example

HTTP/1.1 417 Expectation Failed

Relevant headers

Expect
Expect: 100-continue

Common causes

  • Server does not support the Expect: 100-continue header
  • The expected condition cannot be satisfied
  • Proxy or intermediary does not understand the Expect header

How to fix it

  • Remove the Expect header and send the full request directly
  • Check if the server or proxy supports 100-continue

Common mistakes

  • Assuming the status code alone explains the full backend issue
  • Ignoring related response headers that add important context
  • Treating temporary errors as permanent failures
  • Retrying too aggressively without checking the cause
  • Debugging the frontend only when the problem is server-side

How browsers and APIs use it

Browsers, APIs, and backend services use HTTP status codes to understand the outcome of a request. Depending on the status code, an application may render content, retry a request, redirect the user, show an error, or trigger a different flow in the client or server.

Practical developer insight

417 is a rare error that typically appears when a client sends Expect: 100-continue but the server does not support it. The simplest fix is to remove the Expect header and send the request body immediately.

Client-side example

if (response.status === 417) {
  console.error("Expectation failed — retry without Expect header.");
  }

Related status codes