直接回答
502 は proxy または gateway が有効な upstream response を取得できなかった状態です。header と本文から生成レイヤーを特定します。
このガイドで解決できること
HTTP 502 を返す reverse proxy と upstream 接続障害を解決する。
Reverse proxy / CDNOpenAI 互換 gatewaySSE streamingcontainer / service network
01
症状
有効な model response より前に CDN、ingress、reverse proxy、application gateway が 502 を返します。
モデル一覧は成功しても、別 upstream path、timeout、buffering を使う生成や streaming が失敗します。
02
主な原因
- upstream host、port、protocol、DNS、SNI、Host header が誤っている。
- upstream が再利用 connection を閉じた、または proxy timeout を超えた。
- proxy と upstream 間で TLS・certificate name 検証が失敗している。
- stream response が buffer、compress、truncate され無効扱いになる。
03
診断手順
- 01境界を確定header、brand 付き HTML、request ID から 502 生成レイヤーを特定します。
- 02基準を作成軽量なモデル一覧と最小 non-stream request を試します。
- 03一項目を比較non-stream の基準が安定してから streaming を試します。
- 04決定的な証拠を記録UTC 時刻、connection metadata、request ID で gateway と upstream log を関連付けます。
最小診断コマンド言語:bash
curl -sS -D /tmp/api-502.headers -o /tmp/api-502.body -w 'remote=%{remote_ip} status=%{http_code} total=%{time_total}
' 'https://<your-api-host>/v1/models' -H "Authorization: Bearer ${API_KEY:?set API_KEY first}"
sed -n '1,30p' /tmp/api-502.headers04
修正
- 01障害レイヤーを修正upstream protocol、host、port、DNS、SNI、Host を一致させます。
- 02必要な動作を復元connection lifetime、connect/read/idle timeout を調整します。
- 03一時回避策を除去TLS 検証を維持しつつ不適切な SSE buffering を無効化します。
05
検証
- upstream identity と transport 設定が実サービスと一致する。
- connection pool と timeout budget が制御負荷で安定する。
- SSE event が buffer・truncate なしで逐次通過する。
- bounded retry、circuit breaker、request ID、metric が有効である。
06
機密情報の扱い
- 恒久対応として upstream TLS 検証を無効化しない。
- 非公開 upstream address と header を外部報告に含めない。
- proxy trust と forwarded header を制限する。
- 機密除去した response header、時刻、request ID、両レイヤーの状態で共有する。
公式情報と検証範囲
本ガイドはプロトコル仕様とクライアント公式文書を根拠にしています。エラー文、再試行ヘッダー、設定項目はサービスやバージョンで変わるため、参照元を確認し、ログとリクエスト例を秘匿してから共有してください。
ドキュメントの適用範囲を見る