何が起きたのか?
506 は「サーバー内部のコンテンツの選び分け設定が、循環して終わらなくなっている」というサインです。 教室で言えば、先生 A に質問したら「先生 B に聞いて」と言われ、先生 B のところに行ったら「先生 A に聞いて」と返された——そんな堂々巡りの場面に近いです。
「Transparent Content Negotiation」という古い仕組みに関連するエラーで、現代的な API ではほとんど見かけません。出会ったとしても原因はサーバー側の設定にあり、クライアント側でできることは限られます。
黒板からのひとこと
教室の運営でも、誰が何を担当するかの引き継ぎ表が循環していると、結局誰も対応できなくなります。「これは隣の係に」「いえ、それはこちらの担当ではありません」と、たらい回しになる。先生方は表を引き直して、終端を作ります。
506 もそれと同じで、サーバーは「自分の中で参照が循環していて、結論を出せない」と告白しています。設定ファイルを見直し、参照のループを断ち切るしかありません。
解決への歩み
大丈夫、次はこうしてみよう:
- サーバー管理者へ連絡:クライアント側でできることは少ない
- 時間を置いて再試行:一時的なデプロイ事故なら短時間で直る可能性
- 別のリソースで動作確認:影響範囲が一部か全体かを切り分ける
- バリアント設定を修正(管理者向け):type-map ファイル、MultiViews、動的バリアントの参照グラフを点検
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 506 Variant Also Negotiates
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>506 Variant Also Negotiates</h1></body></html>