投稿の編集中にランダムな404エラーが発生する

フォーラムで返信を編集する際に、ランダムに 404 エラーが発生しています。

編集が正常に動作する場合は、エンドポイント /posts/:post_id に対して PUT リクエストが送信され、200 のレスポンスが返されます。

しかし、失敗する場合は、開発者ツールで /post_replies/:post_id に対する PUT リクエストが確認でき、404 が返されています。ページをリフレッシュするとエラーが消え、正しく編集を保存できるようになります(/posts/:post_id 経由で、:post_id は変更されていません)。

/posts が誤って /post_replies に変換されるような特別な条件があるのか、それとも別の問題なのかはわかりません。最近サーバーの RAM を 4 倍に増設しましたが、ログに異常は見当たりませんでした。

ご助力いただければ幸いです。

「いいね!」 2

他の人の投稿を編集して保存しようとすると、ランダムにこれらのエラーが発生し続けます。古い投稿でも新しい投稿でも起こりますが、常にランダムに発生します。

ページをリフレッシュして編集を保存すると、このエラーは消えます。

最新版を使用しており、この問題が依然として発生していることを確認しました。他のユーザーの投稿を編集して保存しようとすると、not_found というメッセージを含むダイアログボックスがランダムに表示されます。

要求された URL またはリソースが見つかりませんでした。

ページを再読み込みして「編集を保存」ボタンを再度押すと、エラーが消え、編集が保存されます。

それらの 2 つのリクエストは、異なる URL に対して PUT を発行しています。

はい、でもなぜですか?同じ投稿で同じ「編集を保存」ボタンを押しているのに、違いはページの再読み込みだけです。

次回発生した際は、ブラウザのバックトレースを確認してみてください。異なるエンドポイントにアクセスしているため、EmberJS アプリ内でも異なるメソッドを介している可能性があります。

「いいね!」 1

@Falco 再度発生しました。エラー発生後にコンソールを開くと、以下が表示されるだけです:

image

そして、コンソールを開いた状態で再度保存しようとすると:

ページをリフレッシュすると編集できるようになります:

image

これがイニシエータのパスです(VM73:1 スクリプト):

「いいね!」 1

2.7.0.beta2 に更新しましたが、まだ同じ現象が発生しています:

  • 投稿リプライ 47994 の編集を試みる
  • PUT https://mydomain.com/post_replies/47994 => 404 要求された URL またはリソースが見つかりません。コンソール:リソースの読み込みに失敗しました。サーバーがステータス 404 で応答しました () /post_replies/47994:1
  • ページを再読み込み
  • 投稿リプライ 47994 の編集を試みる
  • PUT https://mydomain.com/posts/47994 => 200 成功

デバッグに役立つ他の情報があれば、喜んで提供いたします。

本日1時間以内に3回も発生しました😅

このバグの特定に役立つことは他にありますか?

@Falco ついに、このバグを一貫して再現する方法を見つけました:

  1. enable filtered replies view を無効にする
  2. 返信の矢印をクリック:
  3. 元のメッセージにジャンプする矢印をクリック:image
  4. 編集アイコンをクリック:
  5. 変更を加えて「変更を保存」をクリックすると、「URL またはリソースが見つかりませんでした (404)」というダイアログボックスが表示されます。
「いいね!」 4

@Nacho_Caballero さん、ありがとうございます。具体的な手順が大変参考になりました。修正を含む PR を作成しました:FIX: 404 error when editing an expanded reply by pmusaraj · Pull Request #12504 · discourse/discourse · GitHub

「いいね!」 7

問題ありません!とても簡単な修正です :sweat_smile:

「いいね!」 3

いつも当社の対応にご耐心等待いただき、ありがとうございます、ナチョ。非常に詳細な再現手順をいただければ、ほぼ確実に修正を迅速に作成できます!

「いいね!」 4