WebSocketの再接続ループは、クライアントが根本的なハンドシェイク、セッション、またはパスの問題を修正しないまま再試行を続け、接続が繰り返し失敗または切断されると発生します。
リモートのホームAIインターフェースはHTTPS経由で読み込めても、「再接続中」と表示され続けることがあります。通常のページリクエストとアップグレードされたWebSocket接続では、プロキシの動作が異なるためです。アイドルタイムアウト、アップグレードヘッダーの欠落、期限切れトークン、NATの変更、ハートビートの失敗、状態の再再生エラーによってソケットが切断されることがあります。その後すぐに再試行すると同じ状態が再現され、サーバーに過剰な負荷がかかる場合があります。
ハンドシェイクと認証の失敗により、安定したアップグレードが妨げられる
ブラウザーは、Origin、Cookieまたはトークン、プロトコルヘッダー、WebSocketキーを含むHTTPアップグレードリクエストから処理を開始します。リバースプロキシ、トンネル、またはバックエンドがパスを拒否したり、ヘッダーを削除したり、リダイレクトしたり、すぐに期限切れになる認証状態で受け入れたりすることがあります。
プロキシのアップグレード失敗に関するトラブルシューティングの事例では、プロキシ経由のWebSocketパスが正しく確立されていない場合に、セルフホスト型インターフェースが繰り返し再接続する様子が示されています。特徴は、安定したセッション時間が確保される前に、ハンドシェイクのステータスコードが繰り返し発生することです。
接続が確立され、予測可能な時間にわたってメッセージが送受信されるなら、初期アップグレードは成功しています。ヘッダーをやみくもに変更し続けるのではなく、アイドルタイムアウト、トークンの有効期間、ハートビート、またはパスの変更に注目してください。この違いは、後の家庭内テストでも確認できます。
タイムアウトとハートビートの空白により、正常なセッションも切断される
プロキシ、ロードバランサー、NATデバイス、VPN、バックエンドは、それぞれ異なるアイドルタイマーを使用します。最も短いタイマーの期限内に、どちらの側からも有効なトラフィックまたはping-pongフレームが送信されない場合、中継機器が状態を破棄し、次の書き込みまで一方のエンドポイントがその事実を認識できないことがあります。
WebSocketのキープアライブタイミングに関する技術的な解説では、長時間維持されるソケット、キープアライブ、プロキシのタイムアウトの関係が説明されています。診断上の特徴は、ハンドシェイク時ではなく、接続が一定の時間続いた後や通信が静かな期間中に切断されることです。自動化を進める前に、中間結果を確認できる状態にしておく必要があります。
Wi-Fi、携帯通信、VPN、リレールートの間でリモート経路が変わると、一定の周期がなくても同様の切断が発生することがあります。両方のエンドポイントで切断コードとハートビートの往復時間を記録してください。ブラウザーのエラーだけでは、失敗した中継機器が示されないことがよくあります。
再試行と状態の復旧がループを持続させることがある
上限なしですぐに再試行するクライアントは、複数のタブや家庭内のデバイスを再接続ストームに同期させる可能性があります。トランスポートが成功した後でも、サブスクリプション状態の欠落、シーケンス番号の拒否、期限切れの再開トークンによって、アプリケーションが切断と再接続を繰り返すことがあります。
バックオフと状態の復旧に関するガイドでは、指数バックオフ、ジッター、明示的なセッション復元が推奨されています。これらの制御は根本的な失敗を修正するものではありませんが、診断と復旧を進める間に、再試行が問題を増幅するのを防ぎます。
障害の境界となるのは、ネットワークの移動やサーバーのデプロイ後に意図的に再接続する場合です。有効なセッションの進展がないまま失敗が繰り返される状態がループであり、状態の再再生を伴う一時的で上限のある復旧は、リモートインターフェースでは想定される動作です。この境界は、現実的な運用条件下で個別に測定してください。
接続時間と切断段階でループを分類する
各試行について、DNS、TLS、アップグレードリクエストとレスポンス、プロキシ経路、認証の有効期限、ソケットが開いていた時間、ハートビート、メッセージシーケンス、切断コード、バックエンドログ、VPNまたはNATの変更、再試行の遅延、セッション再開の結果、同時接続クライアント数を記録します。
リモートのホームサーバー経路を使い、LANとリモートの挙動を比較します。同じブラウザービルドを維持したまま、LANへの直接接続、リバースプロキシ、VPN、アイドル状態の通信、トークンの期限切れ、サーバーの再起動、ネットワークの切り替えを個別にテストしてください。複数のソースが限られたコンテキストを奪い合うと、実際の影響が現れます。
最初に失敗した段階を修正します。対象は、ハンドシェイクのルーティング、タイムアウトとハートビート、認証の更新、または状態の再再生です。いずれの場合も、上限付きの指数バックオフとジッターを追加し、家庭内ネットワークの一時的な障害が、復旧可能な切断から持続的なリクエスト洪水へ発展しないようにします。
テック&AIハブ
もっと読む

転送が中断された後にバックアップのチェックサムが一致しなくなる原因は何ですか?
ソーススナップショット、チャンクマニフェスト、再開オフセット、部分ファイル、変換、ストレージへの書き込み、最終検証を追跡して、チェックサムの不一致を特定します。

プライベートナレッジグラフで世帯エンティティが重複する原因は何ですか?
抽出バリエーション、識別キー、解決しきい値、ソースの系譜、同時マージを分けて、重複するナレッジグラフノードを診断します。

新しいドキュメントよりもベクトルインデックスのセグメントが速く増える原因は何ですか?
フラッシュのトリガー、ドキュメントの更新、トゥームストーン、レプリカ、コンパクションのバックログ、放棄されたインデックス構築を追跡して、セグメントの増殖を診断します。

