506

Variant Also Negotiates

5xx Server Error

Back to list

Server perspective

Use 506 for a transparent content negotiation misconfiguration where the selected variant is itself negotiable and causes a loop or invalid resolution path.

When to use

  • Return 506 only for transparent content negotiation configuration errors
  • Use it when the server cannot deliver a concrete representation because variant metadata is self-referential

How to respond

  • Fix the variant map, rewrite rules, or negotiated-resource metadata so each negotiable resource resolves to concrete variants
  • Log which variant selection path caused the loop so operators can repair the configuration quickly

Headers to consider

  • No status-specific header is required; standard negotiation headers may still appear, but the main fix is server-side configuration

Response body

  • A body is helpful; explain that content negotiation configuration is invalid and include a request or trace ID for support

Server-side pitfalls

  • Do not use 506 for ordinary Accept or Accept-Language mismatches; that is usually 406 Not Acceptable
  • Do not blame the client for a server-side negotiation loop

Examples

Negotiated variant points to another negotiable resource

Request:GET /manual with language preferences
Response:506 Variant Also Negotiates with error: negotiator_cycle

The server detected a circular transparent negotiation setup and reports the configuration fault instead of returning the wrong representation.

References

Related 5xx Server Error Codes