MockFoxAdvertise

HTTP 506 Variant Also Negotiates

Updated Free mock REST & WebSocket APIs

HTTP 506 Variant Also Negotiates — Server misconfiguration: the chosen content-negotiation variant is itself configured to negotiate, creating a loop.

Class
5xx Server Error
Defined in
RFC 2295
Official
Yes (IANA registry)
Cacheable by default
No (unless Cache-Control/Expires say so)
Safe to retry
Sometimes — idempotent requests only

Try it: get a real 506 response

Our test endpoint answers every request with 506 Variant Also Negotiates.

curl -i https://mockfox.dev/api/status/506

Use it in tests, health-check monitors or to see how your client handles a 506. Add ?delay=2000 to slow it down.

What does HTTP 506 mean?

From the experimental Transparent Content Negotiation spec. It indicates a configuration error in a server such as Apache with MultiViews/type-maps where a variant points back to a negotiable resource. Essentially never seen outside that setup.

How to fix 506

  1. Visitors: This is a server-side problem — wait a moment and retry, or check the site's status page.
  2. Developers: Check application and proxy logs at the time of the error, verify upstream services are healthy, and alert on 5xx rates.

Example 506 response

HTTP/1.1 506 Variant Also Negotiates
Content-Type: application/json

{"status":506,"error":"Variant Also Negotiates"}

5xx Server Error: The server failed to fulfill a valid request — usually temporary, or a server-side bug. See the full list of HTTP status codes.

Related status codes

Related tools

Frequently asked questions

What does HTTP 506 Variant Also Negotiates mean?

Server misconfiguration: the chosen content-negotiation variant is itself configured to negotiate, creating a loop.

Is 506 a client or a server error?

506 is a 5xx code: the server failed to handle a request that may be perfectly valid. It's often temporary.

Where is 506 defined?

In RFC 2295. It's listed in the IANA HTTP Status Code Registry.

How can I test how my app handles a 506?

Call https://mockfox.dev/api/status/506 — it responds with 506 to any method, with CORS enabled. Add ?delay=2000 to simulate a slow response.