アプリ内ナビゲーションで次のトピックに移動しても、直前に退出したトピックの投稿がレンダリングされたまま表示される

すべてのトピック(Horizon テーマ)でネストされた返信を有効にしたところ、再現可能な状態バグに遭遇しました。これはモバイルとデスクトップの両方で発生します。

トピックを開いて読み、次に「推奨/関連トピック」ブロック経由で別のトピックにジャンプすると(クライアントサイドナビゲーション、リロードなし)、直前に離れたトピックの返信が画面に残り、新しいトピックの最初のブランチの下にネストされて表示されることがあります。さらに、新しいトピックで削除された投稿の下にも付着して表示されます。他のトピックに移動し続けても消えず、完全なページリロードを行うとしか解消しません。

重要な点として、これは断続的に発生します。「関連」ブロック経由の最初の移動は通常問題なく、何度かクリックしても大丈夫です。このバグが現れるのは、関連トピックブロックを連続して 2 回以上移動した後だけです。

再現手順:

  1. ネストされた返信があるトピックを開く。
  2. 「推奨/関連」ブロック経由で別のトピックを開く(リロードなし)、これを連続して数回繰り返す。
  3. ブロックを連続して 2 回以上移動した後、以前のトピックの返信が現在のトピックの最初のブランチの下にネストされて表示される。場合によっては、そこで削除された投稿の下にも表示される。
  4. これらはハードリロードを行うまで、アプリ内のさらなるナビゲーションを通じて維持される。

コンソールに JS エラーは表示されないため、Network タブを確認したところ、以前のトピックが単に破棄されていないようです。

  • 検査中のページはトピック 724(/n/vibriruet-pri-troganii…/724?sort=old)です。
  • 724 にいる間、以前のトピックのデータへのリクエストがまだログに残っています:509.json?sort=old&track_visit=true。
  • 生メッセージバスポーリングには Referer …/n/pinki-tolchki-…-na-nissane-kube/509 が含まれています。つまり、トピック 509 のメッセージバスサブスクリプションが 724 に再設定されていません。

つまり、クライアントサイドナビゲーション時に、ネストされたルートが元のトピックの投稿ストリーム/メッセージバスサブスクリプションをリセットしていないようです。これはモバイルで最初に発見されましたが、デスクトップでも同様に動作します。

Discourse バージョン: 2026.6.0-latest (27f76aa897)
必要であればスクリーンレコーディングを添付するか、さらに調査いたします。