HTTP Status Codes
HTTP 406 Not Acceptable
Not Acceptable — the server cannot produce a response matching the request headers
A 406 Not Acceptable response appears when the server understands the request but cannot generate a representation that satisfies the client's declared preferences. It is tied to content negotiation, where headers such as Accept or Accept-Language limit which response formats are considered valid. In practice, 406 is less common than related 4xx responses because many applications fall back to a default representation instead of rejecting the request.
Visual summary
A quick reference view of how HTTP 406 works: The client requests a specific format, but the server only has incompatible formats to offer.

What 406 Means
The shortest useful reading of this status code.
Not Acceptable means the server cannot produce a response matching the request headers.
This status falls into the 4xx class, indicating a client-side error outcome for the request.
Quick read
Not Acceptable
the server cannot produce a response matching the request headers
How to fix 406
General informational guidance, not professional advice. Commands can affect your system or data — back up first and proceed at your own risk. FixerCode is an independent reference, not affiliated with any vendor mentioned.
Reproduce the negotiated request
Send the same Accept header as the failing client and confirm the server is rejecting the requested response format.
curl -I -H "Accept: application/xml" https://example.com/api/resourceCompare with a supported format
Use a response format the endpoint normally supports. If this returns a non-406 response, the issue is likely the negotiation header rather than the route.
curl -I -H "Accept: application/json" https://example.com/api/resourceReview language and charset limits
Narrow Accept-Language or charset preferences can trigger 406 on strict servers. Compare the failing request with a simpler request that omits those constraints.
Align the response representation
If the client really needs the requested representation, add that response format server-side. Otherwise, adjust the client to ask for a representation the endpoint can return.
Technical Context
How this status behaves without turning the page into a repair guide.
Standard usage
A 406 response is about representation matching, not about whether the URL exists or whether the request body is valid. The server has enough information to process the request, but it cannot choose a response format that fits the negotiation rules supplied by the client.
Technical nuance
That makes 406 different from 415 and 422. A 415 focuses on an unsupported request media type sent to the server, while a 422 points to content that was parsed successfully but still fails application rules. A 406 instead focuses on the response representation the client is willing to receive.
Related HTTP Codes
Nearby HTTP status codes help clarify how 406 differs inside the same response family.
406
Not Acceptable
the server cannot produce a response matching the request headers
400
Bad Request
the server cannot process the request because it is malformed
405
Method Not Allowed
the resource exists but does not accept this HTTP method
415
Unsupported Media Type
the request body format is not accepted here
Common Causes
Unsupported media type requested in the Accept header
A common condition that triggers a 406 response when the web server evaluates the transaction.
Unsupported language or charset preference in the request
A common condition that triggers a 406 response when the web server evaluates the transaction.
Strict content negotiation rules with no acceptable fallback
A common condition that triggers a 406 response when the web server evaluates the transaction.
Typical Scenarios
An API request asks for application/xml on an endpoint that only returns JSON
A client sends narrow language or charset preferences that the server cannot satisfy
A proxy or custom client sets strict Accept headers that exclude the server's default response format
What To Know
A 406 is usually limited to requests with unusually strict Accept, Accept-Language, or related negotiation headers. When only one client or integration sees the error, the difference is often in those request preferences rather than in overall site availability.
Frequently Asked Questions
Common interpretation questions about HTTP 406.
It means the server understood the request but could not return a response in a format that matched the client's declared preferences.
No. A 415 concerns the format of the request sent to the server. A 406 concerns the format of the response the client is willing to accept.
Many applications ignore narrow negotiation preferences and return a default format anyway. A 406 usually appears only when content negotiation is enforced more strictly.