HTTP Status Codes

406 Not Acceptable

The server cannot produce a representation matching the client's Accept, Accept-Language or Accept-Encoding constraints during content negotiation.

What it means

406 Not Acceptable arises in server-driven content negotiation: the client's Accept* headers exclude every representation the server can generate. In practice many servers ignore the mismatch and return their default representation instead of a 406.

Why it matters

  • It formally signals a negotiation dead-end so clients can relax their Accept constraints.

Common mistakes

  • Returning 406 aggressively when serving a sensible default would be friendlier.
  • Confusing 406 (cannot satisfy Accept) with 415 (cannot accept the request's Content-Type).

How WebInspect checks this

  • WebInspect reports Content-Type and Vary so negotiation behaviour is visible.