What it means
The server cannot produce a response in any format the client's Accept headers allow.
Common causes
- Accept asks for a type the API does not support, such as application/xml
- Strict Accept-Language or Accept-Encoding headers
- Security modules rejecting unusual Accept headers
How to fix it
As a client or visitor
Send Accept: application/json or */*, or remove overly strict Accept-* headers.
As the site or API owner
Fall back to a default representation instead of 406 where possible, and list available types in the body.
Example response
HTTP/1.1
HTTP/1.1 406 Not Acceptable
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Content-Type: application/problem+json
{
"type": "about:blank",
"title": "Not Acceptable",
"status": 406,
"detail": "Available representations: application/json."
} Specification
FAQ
› 406 vs 415?
406 is about what the client wants back (Accept). 415 is about what the client sent (Content-Type).
› Why does mod_security return 406?
Some rule sets use 406 as their generic block status; check the WAF logs.