# Уведомления приходят снова, даже после прочтения \[Плагин Private Topics\]

**URL:** https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193
**Category:** Support
**Tags:** notifications
**Created:** [11.Ноябрь.2023 15:49:35 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193 "2023-11-11T15:49:35Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![yusufipek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yusufipek/32/328791_2.png) [@yusufipek](https://meta.discourse.org/u/yusufipek)
#### Post date: [11.Ноябрь.2023 15:49:35 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/1 "2023-11-11T15:49:35Z")

</div>

Здравствуйте, я использую версию 3.2.0.beta4-dev (самостоятельный хостинг) на [этом коммите.](https://github.com/discourse/discourse/commits/cdbe0f74e8659661281decdc9b54ce5e6aa53075) После обновлений пользователи начали сталкиваться с двойными/тройными уведомлениями в интерфейсе. (Я имею в виду интерфейс Discourse, а не электронную почту и т.д.)

 ![image](https://global.discourse-cdn.com/meta/original/4X/6/1/f/61f205ac3262512296979d2bb325c235351c460a.png)

Даже после клика и прочтения уведомления иногда появляются снова. У меня тоже возникают эти проблемы. Я не знаю, как устранить эту неполадку или предоставить полезные логи. Хотел поделиться этим, возможно, это глобальная проблема или только на моем экземпляре?

---

<div class="post-metadata">

### Author: ![Firepup650](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firepup650/32/465200_2.png) [@Firepup650](https://meta.discourse.org/u/Firepup650)
#### Post date: [11.Ноябрь.2023 20:17:37 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/2 "2023-11-11T20:17:37Z")

</div>

Я подозреваю, что это проблема с оперативной памятью. Сколько ОЗУ выделено вашему экземпляру Discourse?

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [11.Ноябрь.2023 20:43:58 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/3 "2023-11-11T20:43:58Z")

</div>

> [@yusufipek](#):
>
> (Я говорю о интерфейсе Discord, а не о электронной почте и т.д.)

Я предполагаю, что вы имеете в виду «интерфейс Discourse»?

---

<div class="post-metadata">

### Author: ![yusufipek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yusufipek/32/328791_2.png) [@yusufipek](https://meta.discourse.org/u/yusufipek)
#### Post date: [12.Ноябрь.2023 07:37:12 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/4 "2023-11-12T07:37:12Z")

</div>

Хорошо, но этот сервер работает уже почти два месяца, и до этого проблемы не возникало. Сейчас на моём сервере доступно 4 ГБ оперативной памяти, из которых половина свободна. Также свободно 2 ГБ swap-памяти.

Я думаю, что возможно это вызвано обновлением, но не исключаю, что виноваты расширения. Пока точно не уверен. Следующий шаг, который я планирую предпринять — отключить все расширения и посмотреть, поможет ли это.

> [@JammyDodger](#):
>
> Я предполагаю, что вы имеете в виду «Discourse UI»?

Да, я приложил скриншот в своём первом сообщении. Я имею в виду уведомления интерфейса Discourse UI.

---

<div class="post-metadata">

### Author: ![yusufipek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yusufipek/32/328791_2.png) [@yusufipek](https://meta.discourse.org/u/yusufipek)
#### Post date: [13.Ноябрь.2023 08:45:19 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/5 "2023-11-13T08:45:19Z")

</div>

Я отключил множество расширений, но проблема всё ещё сохраняется. Есть какие-то идеи или можно ли откатиться до версии `3.2.0.beta3-dev`? Спасибо.

---

<div class="post-metadata">

### Author: ![yusufipek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yusufipek/32/328791_2.png) [@yusufipek](https://meta.discourse.org/u/yusufipek)
#### Post date: [30.Ноябрь.2023 11:29:10 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/6 "2023-11-30T11:29:10Z")

</div>

Снова здравствуйте. Я понимаю, что никто не обязан помогать, это форум сообщества, и, конечно, я не платный клиент, но эта ошибка становится действительно раздражающей как для меня, так и для пользователей. Мы создали сообщество два месяца назад благодаря Discourse, и у нас сейчас 458 активных пользователей в месяц. Но с момента возникновения этой проблемы у нас (20 дней назад) я перепробовал всё, что мог. Это серьёзно ухудшает пользовательский опыт, и теперь я ищу скрипты для миграции на Flarum или другую платформу форумов. Просто посмотрите на это:

![output](https://global.discourse-cdn.com/meta/original/4X/b/2/1/b217f9aa922098f47d73d91eed970d9e71bbb60c.gif)

Пользователи получают одно и то же уведомление снова и снова и снова. Они видят уведомления от 20 дней назад, от 5 дней назад или вообще от любого времени. Даже если вы отклоните все уведомления, через несколько часов появится то же самое уведомление, и исправить это невозможно!

Ещё раз: я понимаю, где нахожусь — это платформа сообщества. У меня нет права жаловаться, но если после этого сообщения никто не поможет, даже если это означает удаление всех наших предыдущих постов и тем (1,2 тысячи тем и 12,7 тысячи постов), нам придётся уйти в другое место…

На всякий случай отмечу: я был сторонником Discourse. Я создавал видео о нём на своём YouTube-канале. Турецкие сообщества обычно используют устаревшие форумы, и у меня был отличный опыт использования Discourse ранее, поэтому после создания собственного форума я хотел, чтобы люди узнали об этом программном обеспечении.

В любом случае я действительно не хочу терять решения и работу других людей на нашем текущем форуме. Поэтому ещё раз вежливо прошу вашей помощи. Спасибо.

---

<div class="post-metadata">

### Author: ![Firepup650](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firepup650/32/465200_2.png) [@Firepup650](https://meta.discourse.org/u/Firepup650)
#### Post date: [30.Ноябрь.2023 11:30:49 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/7 "2023-11-30T11:30:49Z")

</div>

Просто из любопытства, можно ли найти что-то общее между постами, у которых повторяются уведомления?

---

<div class="post-metadata">

### Author: ![yusufipek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yusufipek/32/328791_2.png) [@yusufipek](https://meta.discourse.org/u/yusufipek)
#### Post date: [30.Ноябрь.2023 11:39:12 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/8 "2023-11-30T11:39:12Z")

</div>

Насколько я понимаю, это по-разному для каждого пользователя. Но они повторяются. На моём аккаунте одни и те же уведомления приходят снова и снова. Хотя это не происходит с постами, сделанными более 21 дня назад, когда мы обновились до версии 3.2.0beta4, и я также добавил расширения на наш форум.

Изначально я подумал, что это вызвано расширениями, поэтому отключил **все расширения** , но это не решило проблему. Кстати, возможно, мне стоит удалить их и полностью пересобрать? Не знаю.

Затем я подумал, что дело в beta4. Тогда я откатился до beta3, где у нас не было этой проблемы, но она всё равно сохранялась.

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [30.Ноябрь.2023 11:40:43 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/9 "2023-11-30T11:40:43Z")

</div>

К сожалению, у нас пока нет других сообщений об этой проблеме, поэтому сложно точно определить, что происходит на вашем сайте. У вас стандартная установка?

Есть ли что-нибудь в вашем `/logs` или на странице `/sidekiq`, что могло бы предоставить дополнительную информацию?

> [@Yusuf](#):
>
> Сначала я подумал, что это вызвано расширениями, поэтому я отключил **все расширения** , но это не решило проблему. К слову, возможно, мне стоит удалить их и полностью пересобрать? Я не знаю.

Да. Отключение может не полностью устранить проблемный компонент. Но какие плагины вы недавно установили? Возможно, мы сможем определить, был ли у кого-то из них сообщен о проблемах.

---

<div class="post-metadata">

### Author: ![yusufipek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yusufipek/32/328791_2.png) [@yusufipek](https://meta.discourse.org/u/yusufipek)
#### Post date: [30.Ноябрь.2023 12:00:00 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/10 "2023-11-30T12:00:00Z")

</div>

Да, я понимаю, что трудно точно определить причину. Именно поэтому я надеялся, что проблема исчезнет со временем, но этого не произошло.

Я думаю, что у меня та же проблема, что и здесь: [Users getting notifictations from long ago](https://meta.discourse.org/t/users-getting-notifictations-from-long-ago/269677?u=yusufipek)

> [@JammyDodger](#):
>
> У вас стандартная установка? ([standard install](https://meta.discourse.org/t/142537))

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

> [@JammyDodger](#):
>
> Есть ли что-то в вашей странице `/logs` или `/sidekiq`, что может предоставить больше информации?

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

**Предупреждения:**

```plaintext

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Не удалось отправить push-уведомление: WebPush::Unauthorized : host: fcm.googleapis.com, #<Net::HTTPForbidden 403 Forbidden readbody=true> body: учетные данные VAPID в заголовке авторизации не совпадают
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Не удалось обработать исключение в промежуточном ПО приложения для исключений: ArgumentError : передан пустой список атрибутов
Не удалось обработать исключение в промежуточном ПО приложения для исключений: ArgumentError : передан пустой список атрибутов
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Тема/компонент DiscoTOC вызывает ошибки: TypeError: Cannot read properties of null (reading 'en')
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Не удалось обработать исключение в промежуточном ПО приложения для исключений: ArgumentError : передан пустой список атрибутов
Не удалось отправить push-уведомление: WebPush::Unauthorized : host: updates.push.services.mozilla.com, #<Net::HTTPUnauthorized 401 Unauthorized readbody=true> body: {"code":401,"errno":109,"error":"Unaut
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Не удалось обработать исключение в промежуточном ПО приложения для исключений: ActiveRecord::RecordNotUnique : PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_topic_tags_on_topic_id_and_t
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Не удалось корректно обработать перехваченный ответ: EOFError : достигнут конец файла
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
Уведомление об устаревании: `SiteSetting.anonymous_posting_min_trust_level` устарело. Пожалуйста, используйте `SiteSetting.anonymous_posting_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/disc
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Не удалось отправить push-уведомление: WebPush::ResponseError : host: web.push.apple.com, #<Net::HTTPBadRequest 400 Bad Request readbody=true> body: {"reason":"VapidPkHashMismatch"}
Тема/компонент discourse-gifs вызывает ошибки: TypeError: Cannot read properties of null (reading 'en')
Тема/компонент DiscoTOC вызывает ошибки: TypeError: Cannot read properties of null (reading 'en')
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Не удалось отправить push-уведомление: WebPush::Unauthorized : host: updates.push.services.mozilla.com, #<Net::HTTPUnauthorized 401 Unauthorized readbody=true> body: {"code":401,"errno":109,"error":"Unaut
Sidekiq потребляет слишком много памяти (использует: 558.27M) для 'btt.community', перезапуск
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Не удалось отправить push-уведомление: WebPush::PushServiceError : host: updates.push.services.mozilla.com, #<Net::HTTPBadGateway 502 Bad Gateway readbody=true> body: {"code":502,"errno":903,"error":"Bad
Уведомление об устаревании: `SiteSetting.min_trust_level_for_here_mention` устарело. Пожалуйста, используйте `SiteSetting.here_mention_allowed_groups` вместо этого. (удаление в Discourse 3.3) В /var/www/discourse/
Уведомление об устаревании: Jobs::Chat::NotifyMentioned был поставлен в очередь с аргументами, которые не корректно сериализуются в/из JSON. Это означает, что задача будет выполнена со слегка отличающимися значениями, чем t
Уведомление об устаревании: Jobs::Chat::NotifyWatching был поставлен в очередь с аргументами, которые не корректно сериализуются в/из JSON. Это означает, что задача будет выполнена со слегка отличающимися значениями, чем th
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) не найден: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Уведомление об устаревании: Jobs::Chat::NotifyMentioned был поставлен в очередь с аргументами, которые не корректно сериализуются в/из JSON. Это означает, что задача будет выполнена со слегка отличающимися значениями, чем t
Уведомление об устаревании: Jobs::Chat::NotifyWatching был поставлен в очередь с аргументами, которые не корректно сериализуются в/из JSON. Это означает, что задача будет выполнена со слегка отличающимися значениями, чем th

```

**Ошибки:**

```plaintext
Исключение задачи: Net::ReadTimeout
Исключение задачи: Net::ReadTimeout
Исключение задачи: Net::SMTPAuthenticationError
Исключение задачи: Net::SMTPAuthenticationError
Исключение задачи: Net::SMTPAuthenticationError
(google_oauth2) Ошибка аутентификации! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | Обнаружен CSRF
Исключение задачи: Net::ReadTimeout
(github) Ошибка аутентификации! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | Обнаружен CSRF
(discord) Ошибка аутентификации! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | Обнаружен CSRF
default: Не удалось загрузить горячую ссылку на изображение (https://btt.community/uploads/default/optimized/2X/9/9394498c413ffd7cefbee2461a83d1a66b3b499c_2_690x388.jpeg) post: 10185 PG::UniqueViolation: ERROR: duplicat
Исключение задачи: ERROR: duplicate key value violates unique constraint "pg_type_typname_nsp_index" DETAIL: Key (typname, typnamespace)=(gamification_leaderboard_cache_1_all_time_1, 2200) already exist
(google_oauth2) Ошибка аутентификации! invalid_credentials: OAuth2::Error, invalid_grant: Bad Request { "error": "invalid_grant", "error_description": "Bad Request" }
Исключение задачи: Net::ReadTimeout
Исключение задачи: достигнут конец файла
(github) Ошибка аутентификации! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | Обнаружен CSRF
(twitter) Ошибка аутентификации! invalid_credentials: OAuth::Unauthorized, 401 Unauthorized
Исключение задачи: Net::SMTPAuthenticationError
Исключение задачи: достигнут конец файла
(google_oauth2) Ошибка аутентификации! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | Обнаружен CSRF
(google_oauth2) Ошибка аутентификации! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | Обнаружен CSRF
Исключение задачи: Net::ReadTimeout
Исключение задачи: неверное количество аргументов (передано 0, ожидалось 1)
Исключение задачи: достигнут конец файла
Исключение задачи: неверное количество аргументов (передано 0, ожидалось 1)
(discord) Ошибка аутентификации! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | Обнаружен CSRF
Исключение задачи: Net::ReadTimeout
Исключение задачи: неверное количество аргументов (передано 0, ожидалось 1)

```

**Критические ошибки:**

```plaintext
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "categories" does not exist LINE 1: SELECT "categories"."id" FROM "categories" LEFT JOIN categor...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...
Regexp::TimeoutError (тайм-аут регулярного выражения) lib/crawler_detection.rb:38:in `match?' lib/crawler_detection.rb:38:in `crawler?' lib/middleware/anonymous_cache.rb:129:in `is_crawler?' (eval):2:in `__comp
ActiveRecord::StatementInvalid (PG::InFailedSqlTransaction: ERROR: current transaction is aborted, commands ignored until end of transaction block ) lib/post_action_creator.rb:295:in `rescue in creat
NoMethodError (не определен метод `title' для nil:NilClass) app/models/reviewable_queued_post.rb:166:in `perform_revise_and_reject_post' app/models/reviewable.rb:331:in `public_send' app/models/reviewab
ArgumentError (передан пустой список атрибутов) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
ArgumentError (передан пустой список атрибутов) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
ArgumentError (передан пустой список атрибутов) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
NoMethodError (не определен метод `title' для nil:NilClass) app/models/reviewable_queued_post.rb:166:in `perform_revise_and_reject_post' app/models/reviewable.rb:331:in `public_send' app/models/reviewab
ArgumentError (передан пустой список атрибутов) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
ArgumentError (передан пустой список атрибутов) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
ArgumentError (передан пустой список атрибутов) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
ArgumentError (передан пустой список атрибутов) lib/plugin/instance.rb:522:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
NoMethodError (не определен метод `title' для nil:NilClass) app/models/reviewable_queued_post.rb:166:in `perform_revise_and_reject_post' app/models/reviewable.rb:331:in `public_send' app/models/reviewab
NoMethodError (не определен метод `title' для nil:NilClass) app/models/reviewable_queued_post.rb:166:in `perform_revise_and_reject_post' app/models/reviewable.rb:331:in `public_send' app/models/reviewab
ArgumentError (передан пустой список атрибутов) lib/plugin/instance.rb:521:in `block in on' lib/discourse_event.rb:12:in `block in trigger' lib/discourse_event.rb:12:in `trigger' app/models/post_mover
ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_topic_tags_on_topic_id_and_tag_id" DETAIL: Key (topic_id, tag_id)=(2907, 1) already e

```

> [@JammyDodger](#):
>
> Страница `/sidekiq`, которая может предоставить больше информации?

Что касается Sidekiq, я не знаю, куда именно смотреть. Разве Sidekiq не обрабатывает электронную почту? Имеет ли он какое-то отношение к уведомлениям?

> [@JammyDodger](#):
>
> Но какие плагины вы недавно установили? Мы можем определить, есть ли проблемы с одним из них.

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

Вот расширения, которые я установил до начала этой проблемы (она началась именно в тот день):

- Who’s Online
- Cakeday
- Signature
- Adsense
- ActivityPub (я полностью удалил его и пересобрал, так как не мог отключить)

Как компонент темы:

- GIF

РЕДАКТИРОВАНИЕ: Я забыл добавить еще несколько

- Discourse Private Topics
- Discourse Force Moderation

---

<div class="post-metadata">

### Author: ![Firepup650](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firepup650/32/465200_2.png) [@Firepup650](https://meta.discourse.org/u/Firepup650)
#### Post date: [30.Ноябрь.2023 12:01:31 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/11 "2023-11-30T12:01:31Z")

</div>

> [@Yusuf](#):
>
> GIF

Возможно, я ошибаюсь, но это же компонент темы, верно?

---

<div class="post-metadata">

### Author: ![yusufipek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yusufipek/32/328791_2.png) [@yusufipek](https://meta.discourse.org/u/yusufipek)
#### Post date: [30.Ноябрь.2023 12:02:31 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/12 "2023-11-30T12:02:31Z")

</div>

Да, верно, на данный момент это компонент темы. Я пока не до конца разбираюсь, что к чему, но всё равно добавил его. 😄

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [30.Ноябрь.2023 12:04:58 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/13 "2023-11-30T12:04:58Z")

</div>

> [@Yusuf](#):
>
> Насчёт Sidekiq я точно не знаю, куда именно смотреть. Разве Sidekiq не занимается отправкой писем? Имеет ли это какое-то отношение к уведомлениям?

Sidekiq обрабатывает все фоновые задачи, включая уведомления. У вас там довольно эклектичный набор ошибок 🙂 Мне кажется, я узнаю несколько из тех, которые уже исправлены, поэтому после выполнения пересборки/обновления они не должны повториться. Однако я вижу:

`Sidekiq потребляет слишком много памяти (использует: 558.27M)`

Это может заставлять его повторять выполнение задач (включая повторную отправку уведомлений). Не могли бы вы нажать на эту запись и посмотреть, есть ли там дополнительная информация?

---

<div class="post-metadata">

### Author: ![yusufipek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yusufipek/32/328791_2.png) [@yusufipek](https://meta.discourse.org/u/yusufipek)
#### Post date: [30.Ноябрь.2023 12:08:58 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/14 "2023-11-30T12:08:58Z")

</div>

А, понятно, если это действительно так, то, возможно, в этом и проблема.

![image](https://global.discourse-cdn.com/meta/original/4X/5/d/e/5dee14ad44378bee3030b9e922f47c4be1829ec7.png)

Слева — это счётчик, верно? Значит, это произошло 10 раз.

Вот все моменты, когда это случалось:

```plaintext
8 сен, 18:55
25 сен, 21:44
4 окт, 21:53
10 ноя, 02:26 (Проблема началась 9 ноября)
11 ноя, 11:37
11 ноя, 13:37
23 ноя, 18:43
25 ноя, 18:59
Вс, 07:32
Пн, 13:12

```

Но дело в том, что у нас 4 ГБ оперативной памяти и 2 ГБ SWAP, и я никогда не вижу, чтобы они использовались больше:

 ![image](https://global.discourse-cdn.com/meta/original/4X/b/f/6/bf6e4aad76ec8d5fa0203e3c6daeee635d8e1bac.png)

Это скриншот, сделанный только что. Возможно, это происходит, когда у пользователей пиковая нагрузка, или, если это не так, мне, возможно, нужно увеличить порог для Sidekiq?

ИНФО:

```plaintext
Sidekiq потребляет слишком много памяти (использует: 558.27M) для 'btt.community', перезапуск

```

BACKTRACE:

```plaintext
config/unicorn.conf.rb:164:in `check_sidekiq_heartbeat'
config/unicorn.conf.rb:244:in `master_sleep'
unicorn-6.1.0/lib/unicorn/http_server.rb:295:in `join'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'

/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'

```

env:

```plaintext
hostname	dc-app, [dc-discourse]
process_id	1215943
application_version	a55f924e279b45b81e69e720faeb38284aed90d4
time	Пн, 13:12

```

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [30.Ноябрь.2023 12:26:04 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/15 "2023-11-30T12:26:04Z")

</div>

> [@JammyDodger](#):
>
> `Sidekiq потребляет слишком много памяти (используется: 558,27 МБ)`
> 
> Что может заставлять его повторять попытки выполнения задач (включая повторную отправку уведомлений)

Я знаю, это ничего не доказывает, но у меня эта ошибка возникает несколько раз в день\[1\], и ничего подобного тому, с чем сталкивается ОП, у меня не происходит.

* * *

1. потому что исправление кажется слишком затратным и сложным

---

<div class="post-metadata">

### Author: ![yusufipek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yusufipek/32/328791_2.png) [@yusufipek](https://meta.discourse.org/u/yusufipek)
#### Post date: [30.Ноябрь.2023 12:58:02 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/16 "2023-11-30T12:58:02Z")

</div>

При более внимательном рассмотрении я также вижу несколько ошибок, которые могут быть связаны с этим:

1-я:

```plaintext
Сообщение (109 копий)

Предупреждение об устаревании: Jobs::Chat::NotifyMentioned был поставлен в очередь с аргументами, которые не могут быть корректно сериализованы/десериализованы в JSON. Это означает, что задача будет выполнена с немного другими значениями, чем те, что были переданы в `enqueue`. Значения аргументов должны быть строками, булевыми значениями, числами или nil (или массивами/хешами этих типов значений). (устарело с версии Discourse 2.9) (удаление в версии Discourse 3.0) 
В /var/www/discourse/plugins/chat/lib/chat/notifier.rb:355:in `notify_mentioned_users`

Стек вызовов

/var/www/discourse/lib/discourse.rb:1030:in `deprecate'
/var/www/discourse/app/jobs/base.rb:371:in `enqueue'
/var/www/discourse/plugins/chat/lib/chat/notifier.rb:355:in `notify_mentioned_users'
/var/www/discourse/plugins/chat/lib/chat/notifier.rb:78:in `notify_new'
/var/www/discourse/plugins/chat/app/jobs/regular/chat/process_message.rb:42:in `block in execute'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/plugins/chat/app/jobs/regular/chat/process_message.rb:7:in `execute'

```

2-я:

```plaintext
Сообщение (109 копий)

Предупреждение об устаревании: Jobs::Chat::NotifyWatching был поставлен в очередь с аргументами, которые не могут быть корректно сериализованы/десериализованы в JSON. Это означает, что задача будет выполнена с немного другими значениями, чем те, что были переданы в `enqueue`. Значения аргументов должны быть строками, булевыми значениями, числами или nil (или массивами/хешами этих типов значений). (устарело с версии Discourse 2.9) (удаление в версии Discourse 3.0) 
В /var/www/discourse/plugins/chat/lib/chat/notifier.rb:367:in `notify_watching_users`

Стек вызовов

/var/www/discourse/lib/discourse.rb:1030:in `deprecate'
/var/www/discourse/app/jobs/base.rb:371:in `enqueue'
/var/www/discourse/plugins/chat/lib/chat/notifier.rb:367:in `notify_watching_users'
/var/www/discourse/plugins/chat/lib/chat/notifier.rb:79:in `notify_new'
/var/www/discourse/plugins/chat/app/jobs/regular/chat/process_message.rb:42:in `block in execute'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/plugins/chat/app/jobs/regular/chat/process_message.rb:7:in `execute'

```

3-я:

```plaintext
Сообщение (29888 копий)

Исключение в задаче: неверное количество аргументов (получено 0, ожидалось 1)

Стек вызовов

/var/www/discourse/plugins/discourse-private-topics/plugin.rb:20:in `get_filtered_category_ids'
/var/www/discourse/plugins/discourse-private-topics/plugin.rb:149:in `handle'
/var/www/discourse/plugins/discourse-follow/plugin.rb:131:in `block (2 levels) in activate!'
/var/www/discourse/lib/plugin/instance.rb:521:in `block in on'
/var/www/discourse/lib/discourse_event.rb:12:in `block in trigger'
/usr/local/lib/ruby/3.2.0/set.rb:511:in `each_key'
/usr/local/lib/ruby/3.2.0/set.rb:511:in `each'
/var/www/discourse/lib/discourse_event.rb:12:in `trigger'
/var/www/discourse/app/services/post_alerter.rb:205:in `after_save_post'
/var/www/discourse/app/jobs/regular/post_alert.rb:10:in `execute'

имя_хоста	dc-app
идентификатор_процесса	190
версия_приложения	95b7cbd8a13ec82003936ef9408ec83bc9f3c2ea
текущая_база_данных	default
текущий_хост	btt.community
задача	Jobs::PostAlert
проблемная_база_данных	default
время	Ср 13:55

```

Судя по стеку вызовов третьей ошибки, проблема связана с плагинами discourse-private-topics и discourse-follow. Как я уже говорил, я не эксперт в этой области, но давайте я удалю и заново соберу всё с нуля…

---

<div class="post-metadata">

### Author: ![yusufipek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yusufipek/32/328791_2.png) [@yusufipek](https://meta.discourse.org/u/yusufipek)
#### Post date: [30.Ноябрь.2023 14:13:56 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/17 "2023-11-30T14:13:56Z")

</div>

После удаления плагинов и пересборки третья ошибка исчезла, но первое и второе предупреждения об устаревании всё ещё сохраняются.

И проблема не решена.

В Sidekiq я вижу десятки задач `Jobs::PostAlert` в секции повторных попыток. Думаю, именно поэтому все эти уведомления возвращаются. Но почему они попадают в повторные попытки, если уведомление действительно отправляется?

 ![image](https://global.discourse-cdn.com/meta/original/4X/a/d/e/ade1a4549896ed910f8aeb53a8c6fc57a7ff24bf.jpeg)

Как видите, это занимает 63 страницы. Мне нужно удалить их все?

РЕДАКТИРОВАНИЕ:

Судя по ошибке, она вызывается плагинами `discourse-private-topics` и `discourse-follow`.

> [@Yusuf](#):
>
> ```plaintext
> Сообщение (29888 копий)
> 
> Исключение задачи: неверное количество аргументов (получено 0, ожидалось 1)
> 
> Трассировка стека
> 
> /var/www/discourse/plugins/discourse-private-topics/plugin.rb:20:in `get_filtered_category_ids'
> /var/www/discourse/plugins/discourse-private-topics/plugin.rb:149:in `handle'
> 
> ```

Даже после их удаления, так как они находились в секции повторных попыток, Sidekiq продолжал отправлять эти уведомления. Теперь я удалил все эти повторные попытки и надеюсь, что проблема решена. Я обновлю информацию.

---

<div class="post-metadata">

### Author: ![yusufipek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yusufipek/32/328791_2.png) [@yusufipek](https://meta.discourse.org/u/yusufipek)
#### Post date: [30.Ноябрь.2023 21:10:54 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/18 "2023-11-30T21:10:54Z")

</div>

Отлично, проблема решена. В итоге ошибка `Job exception: wrong number of arguments (given 0, expected 1)` вызвана либо плагином [Private Topics Plugin](https://meta.discourse.org/t/private-topics-plugin/268646), либо плагином [Discourse Follow](https://meta.discourse.org/t/discourse-follow/110579), либо обоими сразу. Возможно, их сочетание и создаёт эту проблему — я не знаю и, честно говоря, не хочу выяснять. Я немного травмирован, разгребая эту проблему уже 21 день. 😄 Возможно, авторам этих плагинов стоит об этом узнать, поэтому я отмечу их здесь: @sam @RGJ.

Спасибо @JammyDodger @Firepup650.

Кажется, я научился отлаживать проблемы в Discourse и больше никогда не буду устанавливать более одного плагина за раз…

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [30.Ноябрь.2023 23:37:06 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/19 "2023-11-30T23:37:06Z")

</div>

Спасибо, что докопались до сути! Действительно, проблема была в моём плагине для личных тем, которая проявлялась только при включённом плагине подписки.

Я исправил ошибку. Извините за этот травмирующий опыт 😉

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [01.Декабрь.2023 00:44:12 UTC](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193/20 "2023-12-01T00:44:12Z")

</div>

Отличная отладка. 👏 🙂 И спасибо за быстрое исправление, @RGJ! 🚀

Поскольку проблема касалась неофициального плагина (не #official), я перемещу эту тему из категории #Contribute > Bug (хотя и не буду объединять её с [Private Topics Plugin](https://meta.discourse.org/t/private-topics-plugin/268646), так как она слишком объёмная для этого).

Надеюсь, теперь вы сможете установить оба плагина без лишних уведомлений. 🤞

[Следующая страница](https://meta.discourse.org/t/notifications-are-coming-again-even-after-reading-them-private-topics-plugin/285193.md?page=2)
