アクションを参照して通知が再生成されている

いいえ、これは古いバージョンでの奇妙な話ですが、誰かヒントや似たような経験をお持ちではないかと期待していました。

私たちは、カスタムプラグインの依存関係のため 2.4.5 版のフォーラムを運用しています。利用者からは重複通知について不満が上がっています。時には、イベント発生から数日後、かつユーザーが Discourse UI(アプリやブラウザではなく)でその通知を複数回確認し(クリックし)た後でも、通知が再生成されることがあります。

トピックの投稿:

 post_number |         created_at         
-------------+----------------------------
           1 | 2020-06-22 17:06:42.531868
           2 | 2020-06-23 00:11:07.159579
           3 | 2020-06-24 00:35:06.000641
           4 | 2020-06-25 00:17:16.998622
           5 | 2020-06-29 00:00:39.712988
           6 | 2020-06-29 01:03:20.137653
           7 | 2020-06-29 01:32:45.604947

このユーザーのこのトピックに関する通知:

   id    | notification_type | user_id |         created_at         | topic_id | post_number 
---------+-------------------+---------+----------------------------+----------+-------------
 1125345 |                 5 |     956 | 2020-06-24 21:45:21.521173 |    39247 |           3
 1133280 |                 5 |     956 | 2020-06-29 01:27:32.242212 |    39247 |           6
 1140349 |                 2 |     956 | 2020-07-02 21:11:44.843782 |    39247 |           7

ご覧の通り、返信通知が返信から 3.5 日以上経過して投稿 #7 に対して生成されています。

21:11:44 に何が起きたかを知るためにアクセスログを grep で検索したところ、このユーザーがちょうどその秒にプロフィールの「アクティビティ」→「返信」(/user_actions.json?username=redacted&filter=5&offset=240) を閲覧していたことが分かりました。

まるで返信を閲覧することで通知が再生成されたかのようです。

関連するプラグインは onesignal と push-notifications です。

何かご存知の方はいらっしゃいますか?

追記:1 日後、投稿 #7 の通知が再生成されました:

   id    | notification_type | user_id |         created_at         | topic_id | post_number 
---------+-------------------+---------+----------------------------+----------+-------------
 1125345 |                 5 |     956 | 2020-06-24 21:45:21.521173 |    39247 |           3
 1133280 |                 5 |     956 | 2020-06-29 01:27:32.242212 |    39247 |           6
 1141684 |                 2 |     956 | 2020-07-04 02:23:12.188685 |    39247 |           7
「いいね!」 1

これは以前修正したバグにうっすらと似ている気がするのですが?はっきりは言えません。

「いいね!」 2

Hmm、関連するプラグインは onesignal、push-notifications、そして follow です。

@outofthebox これに関連していると思います。

投稿を作成したユーザー(ユーザー #15356)が、通知を繰り返し受信しているユーザー(ユーザー #956)に通知を生成している状況は以下の通りです:

  • 通知を受信しているユーザーをフォローしている
  • 存在しないユーザー(ユーザー #16229)にフォローされている

:

 select user_id, name, value from user_custom_fields where user_id=15356;
 user_id |     name     |         value          
---------+--------------+------------------------
   15356 | followers    | 16229 --> このユーザーは存在しません
   15356 | following    | 56,0
   15356 | following    | 956,0 --> 通知を受信しているユーザー
「いいね!」 2

つまり、これはフォロープラグインのバグの別の事例ですか?

まだ確信はありませんが、少し異なるように見えます。しかし、他方で共通点も非常に多いです。

「いいね!」 2