Уведомления генерируются заново путём просмотра действий

Хорошо, это странная история, касающаяся более старой версии, но я надеялся, что кто-то сможет дать советы или, возможно, рассказать о похожем опыте.

У нас есть форум (на версии 2.4.5 из-за зависимости от кастомного плагина), где пользователи жалуются на дублирование уведомлений. Иногда уведомления генерируются заново спустя дни после события, даже после того как пользователь уже видел (и кликал по) этим уведомлениям много раз — в интерфейсе Discourse (не в приложении, не в браузере).

Посты темы:

 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

Как видите, уведомление о ответе на пост #7 было сгенерировано более чем через 3,5 дня после того, как ответ был опубликован.

При поиске по логам доступа, чтобы понять, что произошло в 21:11:44, мы обнаружили, что в эту самую секунду пользователь просматривал свой Профиль — Активность — Ответы (/user_actions.json?username=redacted&filter=5&offset=240).

Кажется, что именно просмотр этих ответов привел к повторной генерации уведомления.

Релевантные плагины: onesignal и push-notifications.

У кого-нибудь есть ЛЮБАЯ идея?

РЕДАКТИРОВАНИЕ: спустя день уведомление для поста #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

Мне это звучит смутно знакомо, как ошибка, которую мы где-то исправили? Трудно сказать.

Хм, соответствующие плагины — 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 --> пользователь, получающий уведомления

Итак, это еще один случай бага с плагином Follow?

Я пока не уверен, это кажется немного другим, но с другой стороны, есть много общего.