Skip to content

HTTP status code · Server errors (5xx)

506 Variant Also Negotiates

506 Variant Also Negotiates means the server's content negotiation is misconfigured: the variant it picked for you is itself set up to negotiate, so there is no final representation to send. In practice the cause is an Apache type map or MultiViews setup where a variant points to another type map.

Facts about this status code
Class5xx, Server errors
Defined inRFC 2295 §8.1
Cacheable by defaultOnly with explicit Cache-Control or Expires
Safe to retryNo; it is a server configuration error
Relevant headers
  • TCN: the transparent content negotiation header from RFC 2295 that marks a negotiating resource
  • Alternates: the RFC 2295 list of variants a negotiating resource can return

What 506 means

RFC 2295, section 8.1, defines 506 as an internal configuration error in transparent content negotiation (TCN): the chosen variant resource is configured to engage in negotiation itself and so is not a proper end point. TCN was an experimental 1998 protocol that never saw wide adoption, so 506 is one of the rarest codes in the registry.

The one mainstream implementation is Apache mod_negotiation. Its source returns 506 when a transparently negotiated resource picks a variant that is itself a type map or itself sends a TCN header, which would create recursive negotiation.

Common causes

If you run the server

  • An Apache .var type map lists a variant URI that is another .var file.
  • MultiViews is enabled and a variant it selects is itself negotiated.

How to fix it

If you run the server

  • Point every variant in a type map at a concrete file, never at another type map.
  • If you do not need negotiation, turn off MultiViews (Options -MultiViews) and serve explicit URLs per language or format.

How to send 506

There is no reason to send 506 from application code. It is produced by the negotiation module of the web server when its configuration loops.

Commonly confused with

506 vs 406
406 Not Acceptable means negotiation worked but no variant matches what the client accepts; 506 means negotiation itself is broken on the server.
506 vs 300
300 Multiple Choices hands the list of variants to the client to choose; 506 means the server tried to choose and found a variant that would negotiate again.

Frequently asked questions

Is 506 Variant Also Negotiates still used?
Barely. It belongs to RFC 2295 transparent content negotiation, an experimental protocol that browsers never adopted. Apache mod_negotiation can still emit it when its type maps are configured recursively.
Can a visitor fix a 506 error?
No. It is a server configuration loop. Changing your browser language or accepted formats might route around it by accident, but only the site owner can fix the type map or MultiViews setup.
What is transparent content negotiation?
An RFC 2295 extension in which a server advertises the available variants of a resource (by language, format or encoding) in an Alternates header, so a client or cache can pick the best one. Modern sites use the Accept headers plus Vary instead.

Last reviewed by Arielton Oberek.