Повторяющиеся уведомления от поста пользователя из-за плагина Follow User

Привет, ребята,

У меня один быстрый вопрос: после восстановления сайта из резервной копии каждый раз, когда этот конкретный пользователь отвечает на тему, у пользователя, создавшего тему, или у того, кому отвечают, постоянно появляются уведомления «Изменено».

Я попытался разобраться, и кажется, что что-то неладное в Sidekiq: в разделе «Повторные попытки» (Retries) некоторые задания просто накапливаются и никогда, похоже, не выполняются успешно. После их удаления уведомления прекращаются (пока человек не напишет в другой теме, после чего появится новое).

Сообщения имеют следующий формат:

Следующая попытка Количество попыток Очередь Задание Аргументы Ошибка
через 1 минуту 10 default Jobs::PostAlert {“post_id”=>25977142, “new_record”=>true, “options”=>nil, “current_site_id”=>“default”} Jobs::HandledExceptionWrapper: Wrapped ActiveRecord::RecordNotFound: Couldn’t find User with ‘id’=1452

Из этого я делаю вывод, что какой-то пользователь не существует (хотя проблема возникает с постами пользователя, который существует и активен). Возможно, речь о другом пользователе. Есть ли какой-то запрос или способ, чтобы это перепроверить?

Я посмотрел документацию, но если мне нужно что-то «исправить», я боюсь что-то сломать :sweat_smile:

Буду очень благодарен за любую помощь!

Маленькое обновление:

  • Происходит только с этим конкретным пользователем.
  • В уведомлениях для пользователей отображается так, будто каждое сообщение, написанное этим пользователем, «редактируется» (то есть, если он отвечает другому пользователю, то этот пользователь будет получать повторяющиеся уведомления об «изменении» этого конкретного сообщения).
  • Пересборка не влияет на проблему.
  • Удаление повторяющейся задачи в Sidekiq, похоже, навсегда останавливает это для одного уведомления, но каждый раз, когда этот пользователь публикует сообщение, проблема возникает снова.

Быстрое дополнение:

  • Попробовал выполнить запрос для этого пользователя — он не существует, но я не понимаю, как это связано с существующим пользователем (возможно, запрос составлен неверно?). На странице администратора, изучая этот пост как для запроса, так и для URL администратора, я вижу пользователя с ID «1451» и пользователя с ID «1453», но (как и указывает ошибка) нет пользователя с ID «1452». При этом пользователь, который «вызывает» эту проблему, является модератором, и его ID — 55 :stuck_out_tongue:

Быстрое дополнение +:

  • Думал над этим. Может, кто-нибудь подскажет, какие последствия будет иметь «внедрение» так называемого «отсутствующего пользователя», о котором говорится в ошибках? То есть, если я добавлю эту запись в БД, перестанут ли Sidekiq и задачи падать?

Вы случайно не используете плагин «Follow User»? У меня возникла похожая проблема: удалённые пользователи не удалялись из списка подписок, а уведомления застревали в цикле. Моё решение заключалось в ручном удалении некоторых записей из базы данных. Проблема в плагине уже исправлена, но если вы используете старую версию, она может сохраниться.

О, Дискурс! Да, использую! :stuck_out_tongue:

Сейчас проверю версию, чтобы понять, может ли это быть связано. Огромное спасибо, @bartv!

Отлично! Обратите внимание, что даже если плагин был обновлён, ваши данные могли быть повреждены старой версией. Я нашёл свой старый пост на эту тему. Он не очень подробный, но, возможно, поможет вам сориентироваться:

https://meta.discourse.org/t/follow-plugin/110579/41?u=bartv