506 Variant Also Negotiates 5xx
The server has an internal configuration error involving content negotiation, where the chosen variant itself is configured to negotiate.
What does 506 mean?
A 506 Variant Also Negotiates response indicates a server configuration error related to content negotiation — specifically, a scenario from "transparent content negotiation" (RFC 2295) where the server, trying to pick the best "variant" of a resource to return (based on content negotiation), selects a variant that itself is also configured to negotiate further. This creates a circular/invalid configuration that the server can't resolve.
Like 226, 506 relates to a relatively elaborate content-negotiation framework (RFC 2295/2296, "Transparent Content Negotiation") that saw very limited real-world adoption — most modern content negotiation is far simpler (based on Accept-* headers, handled directly by application logic) and would never produce this kind of circular configuration issue.
How a 506 behaves
- It indicates a server-side misconfiguration, not a client error — the client did nothing wrong; the server's content-negotiation setup for this resource is internally inconsistent
- It can carry a body explaining the configuration issue, primarily useful to whoever administers the server
Common causes
If you're operating the server:
- Extremely rare in modern setups — this specifically relates to "transparent content negotiation" configurations (RFC 2295), a feature that saw minimal adoption beyond a few specific server implementations from the late 1990s
- If encountered, it indicates a configuration file/setup where a "negotiable" resource's chosen variant is itself set up as another negotiable resource, creating an unresolvable loop
If you're calling an API:
- You're exceptionally unlikely to encounter 506 from any modern API — virtually no contemporary API implementations use the specific content-negotiation framework this code relates to
If you're a website visitor:
- Not applicable in any normal scenario
How to fix it
As a server operator (in the rare case this is relevant):
- This indicates a configuration error in a transparent-content-negotiation setup — the fix involves correcting the server configuration so that variant resources don't themselves point to further negotiable variants, but this is squarely a niche, legacy-configuration concern
SEO implications
None — 506 indicates a server misconfiguration in an extremely rarely-used feature, with no relevance to typical SEO concerns.
FAQ
Is 506 something I'll ever encounter?
Almost certainly not, unless working with specific legacy server configurations implementing "transparent content negotiation" (RFC 2295) — a feature with minimal real-world adoption even at the time it was introduced.
Is 506 a client-side or server-side issue?
Entirely server-side — it represents an internal configuration inconsistency on the server, with no action a client could take to resolve it.
How does 506 relate to 300 (Multiple Choices)?
Both relate to content negotiation — 300 is about presenting multiple options when automatic selection isn't appropriate; 506 is about a specific failure mode within a more elaborate (and rarely-used) automatic negotiation framework, where the automatic selection process itself becomes circular/invalid.
Why does this status code exist if it's so rarely relevant?
Like 226, it's part of a content-negotiation framework (RFC 2295/2296) that, while not widely adopted, was formally specified — and once specified, status codes generally remain in the registry even if the broader feature they relate to doesn't see significant real-world use.
Could 506 indicate a bug in my application code?
Very unlikely to be an application-level concern at all — this is specifically about a particular server-level content-negotiation configuration framework, not something typical application/API code would interact with or cause directly.
Fun fact
506, alongside 226, represents a small cluster of status codes tied to "transparent content negotiation" (RFC 2295/2296) — an ambitious mid-1990s vision for how servers could automatically manage multiple variants of content (different languages, formats, etc.) that, despite the formal specification work, never became how the web actually handles these concerns in practice, making both codes interesting primarily as artifacts of a road not taken.