Пользователь не видит своё личное сообщение

Приветствую всех участников форума и команду Discourse!
На моём сайте возникла неуказанная ошибка. Пользователь или сотрудник сайта (кроме администратора) не может увидеть своё личное сообщение. Заголовок частного сообщения отображается в общем списке сообщений, но при клике на ссылку полное содержимое не открывается. Я попытался отключить все плагины и компоненты темы, даже удалил весь CSS, но это не помогло. Вот что отображается:

А вот что показывается, когда пользователь пытается обновить страницу браузера:

Вот экран консоли:

Возможно, есть больше подробностей, если вы проверите страницу /logs. Не могли бы вы зайти туда и вставить информацию здесь в блоке кода?

Вы отключили плагины через настройки или удалили их из YAML-файла и пересобрали? Если вы не удалили и не пересобрали, вам следует это сделать.

Извините за длинный ответ :pray: Вот всё, что было:

Предупреждение об устаревании: Типы массивов для пользовательских полей устарели, используйте тип :json вместо этого (удаление в Discourse 3.3.0) В /var/www/discourse/lib/plugin/instance.rb:561:in `block in register_topic_cust

24 ноя 21:33

Предупреждение об устаревании: Типы массивов для пользовательских полей устарели, используйте тип :json вместо этого (удаление в Discourse 3.3.0) В /var/www/discourse/lib/plugin/instance.rb:576:in `block in register_user_custo

24 ноя 21:33

Предупреждение об устаревании: Типы массивов для пользовательских полей устарели, используйте тип :json вместо этого (удаление в Discourse 3.3.0) В /var/www/discourse/lib/plugin/instance.rb:566:in `block in register_post_custo

24 ноя 21:33

Предупреждение об устаревании: Аргумент add_to_serializer's respect_plugin_enabled должен передаваться как именованный аргумент. В /var/www/discourse/plugins/discourse-category-lockdown/plugin.rb:21:in `block in acti

24 ноя 21:33

Предупреждение об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_*?. Вместо этого используйте именованный аргумент include_condition. В /var/www/discourse/plugins/discourse-custom-wiz

24 ноя 21:33

Предупреждение об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_*?. Вместо этого используйте именованный аргумент include_condition. В /var/www/discourse/plugins/discourse-custom-wiz

24 ноя 21:33

Предупреждение об устаревании: Аргумент add_to_serializer's respect_plugin_enabled должен передаваться как именованный аргумент. В /var/www/discourse/plugins/discourse-ratings/plugin.rb:202:in `block in activate!`

24 ноя 21:33

Предупреждение об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_*?. Вместо этого используйте именованный аргумент include_condition. В /var/www/discourse/plugins/discourse-ratings/pl

24 ноя 21:33

Предупреждение об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_*?. Вместо этого используйте именованный аргумент include_condition. В /var/www/discourse/plugins/discourse-ratings/pl

24 ноя 21:33

Предупреждение об устаревании: Типы массивов для пользовательских полей устарели, используйте тип :json вместо этого (удаление в Discourse 3.3.0) В /var/www/discourse/lib/plugin/instance.rb:556:in `block in register_category_c

24 ноя 21:33

Предупреждение об устаревании: Событие :post_notification_alert устарело. Пожалуйста, используйте :push_notification вместо этого (устарело с Discourse 3.2.0.beta1) (удаление в Discourse 3.3.0.beta1) В /var/www/dis

24 ноя 21:33

4

ActiveRecord::StatementInvalid (PG::UndefinedColumn: ОШИБКА: столбец "thread_id" не существует LINE 1: ..._drafts"."chat_channel_id", "chat_drafts"."data", "thread_id...

24 ноя 22:45

4

Не удалось обработать исключение в промежуточном ПО приложения исключений: ActiveRecord::StatementInvalid : PG::UndefinedColumn: ОШИБКА: столбец "thread_id" не существует LINE 1: ..._drafts"."chat_channel_id", "chat_dr

24 ноя 22:45

17

Очистка кэша Active Record. Это может произойти, если схема изменилась во время работы сайта или в мульти-сайте различные базы данных используют разные схемы. Рекомендуется выполнить rake multisite:migrate.

24 ноя 22:45

11

ActiveRecord::StatementInvalid (PG::UndefinedColumn: ОШИБКА: столбец "thread_id" не существует LINE 1: ..._drafts"."chat_channel_id", "chat_drafts"."data", "thread_id...

24 ноя 22:45

11

Не удалось обработать исключение в промежуточном ПО приложения исключений: ActiveRecord::StatementInvalid : PG::UndefinedColumn: ОШИБКА: столбец "thread_id" не существует LINE 1: ..._drafts"."chat_channel_id", "chat_dr

24 ноя 22:45

3

[Telegram Bridge] Не удалось передать сообщение: [1/12] [policy] 'require_plugin_enabled' ✅ [2/12] [contract] 'default' ✅ [3/12] [model] 'channel_id' ❌ [4/12] [policy] 'require_channel_id_vaild' [5/12] [p

25 ноя 00:49

[Telegram Bridge] Не удалось передать сообщение: [1/12] [policy] 'require_plugin_enabled' ✅ [2/12] [contract] 'default' ✅ [3/12] [model] 'channel_id' ❌ [4/12] [policy] 'require_channel_id_vaild' [5/12] [p

25 ноя 00:49

24

Не удалось пересобрать пост # 612 после 3 попыток, сдаюсь: ActiveRecord::RecordNotFound : Не удалось найти Topic с 'id'=137 [WHERE "topics"."deleted_at" IS NULL]

25 ноя 01:24

24

Исключение в задаче: Не удалось найти Topic с 'id'=137 [WHERE "topics"."deleted_at" IS NULL]

25 ноя 01:24

4

Предупреждение об устаревании: Аргумент add_to_serializer's respect_plugin_enabled должен передаваться как именованный аргумент. В /var/www/discourse/plugins/discourse-ai-topic-summary/plugin.rb:32:in `block in activ

25 ноя 20:45

5

Предупреждение об устаревании: Типы массивов для пользовательских полей устарели, используйте тип :json вместо этого (удаление в Discourse 3.3.0) В /var/www/discourse/lib/plugin/instance.rb:561:in `block in register_topic_cust

25 ноя 20:45

5

Предупреждение об устаревании: Типы массивов для пользовательских полей устарели, используйте тип :json вместо этого (удаление в Discourse 3.3.0) В /var/www/discourse/lib/plugin/instance.rb:576:in `block in register_user_custo

25 ноя 20:45

5

Предупреждение об устаревании: Типы массивов для пользовательских полей устарели, используйте тип :json вместо этого (удаление в Discourse 3.3.0) В /var/www/discourse/lib/plugin/instance.rb:566:in `block in register_post_custo

25 ноя 20:45

4

Предупреждение об устаревании: Аргумент add_to_serializer's respect_plugin_enabled должен передаваться как именованный аргумент. В /var/www/discourse/plugins/discourse-category-lockdown/plugin.rb:21:in `block in acti

25 ноя 20:45

4

Предупреждение об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_*?. Вместо этого используйте именованный аргумент include_condition. В /var/www/discourse/plugins/discourse-custom-wiz

25 ноя 20:45

4

Предупреждение об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_*?. Вместо этого используйте именованный аргумент include_condition. В /var/www/discourse/plugins/discourse-custom-wiz

25 ноя 20:45

4

Предупреждение об устаревании: Аргумент add_to_serializer's respect_plugin_enabled должен передаваться как именованный аргумент. В /var/www/discourse/plugins/discourse-ratings/plugin.rb:202:in `block in activate!`

25 ноя 20:45

4

Предупреждение об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_*?. Вместо этого используйте именованный аргумент include_condition. В /var/www/discourse/plugins/discourse-ratings/pl

25 ноя 20:45

4

Предупреждение об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_*?. Вместо этого используйте именованный аргумент include_condition. В /var/www/discourse/plugins/discourse-ratings/pl

25 ноя 20:45

5

Предупреждение об устаревании: Типы массивов для пользовательских полей устарели, используйте тип :json вместо этого (удаление в Discourse 3.3.0) В /var/www/discourse/lib/plugin/instance.rb:556:in `block in register_category_c

25 ноя 20:45

4

Предупреждение об устаревании: Событие :post_notification_alert устарело. Пожалуйста, используйте :push_notification вместо этого (устарело с Discourse 3.2.0.beta1) (удаление в Discourse 3.3.0.beta1) В /var/www/dis

25 ноя 20:45

298

Sidekiq потребляет слишком много памяти (использует: 679.16M) для 'neurogid.com', перезагрузка

25 ноя 23:27

Предупреждение об устаревании: параметр :meta_data устарел, используйте параметр :topic_custom_fields вместо этого (устарело с Discourse 3.2) (удаление в Discourse 3.3) В <внутренний:ядро>:90:in `tap`

25 ноя 23:37

8

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) не найден: Нет такого файла или каталога @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb

25 ноя 23:44

8

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) не найден: Нет такого файла или каталога @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb

25 ноя 23:44

16

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) не найден: Нет такого файла или каталога @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb

25 ноя 23:45

16

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) не найден: Нет такого файла или каталога @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb

25 ноя 23:45

2

[Telegram Bridge] Не удалось передать сообщение: [1/12] [policy] 'require_plugin_enabled' ✅ [2/12] [contract] 'default' ✅ [3/12] [model] 'channel_id' ❌ [4/12] [policy] 'require_channel_id_vaild' [5/12] [p

Вс 09:20

3

[Telegram Bridge] Не удалось передать сообщение: [1/12] [policy] 'require_plugin_enabled' ✅ [2/12] [contract] 'default' ✅ [3/12] [model] 'channel_id' ❌ [4/12] [policy] 'require_channel_id_vaild' [5/12] [p

Вс 15:30

17

Исключение в задаче: undefined method `include?' for nil:NilClass

00:24

20

OpenAIBot Post Embedding: Возникла проблема, но будет повторная попытка до достижения лимита: undefined method `destroy!' for nil:NilClass

10:25

3

[Telegram Bridge] Не удалось передать сообщение: [1/12] [policy] 'require_plugin_enabled' ✅ [2/12] [contract] 'default' ✅ [3/12] [model] 'channel_id' ❌ [4/12] [policy] 'require_channel_id_vaild' [5/12] [p

11:11

[Telegram Bridge] Не удалось передать сообщение: [1/12] [policy] 'require_plugin_enabled' ✅ [2/12] [contract] 'default' ✅ [3/12] [model] 'channel_id' ❌ [4/12] [policy] 'require_channel_id_vaild' [5/12] [p

11:38

27

NoMethodError (undefined method `enable_personal_messages?' for SiteSetting:Class) app/serializers/topic_view_details_serializer.rb:127:in `include_can_invite_to?' (eval):11:in `_fast_attributes' lib/

14:20

6

NoMethodError (undefined method `enable_personal_messages?' for SiteSetting:Class) app/serializers/topic_view_details_serializer.rb:127:in `include_can_invite_to?' (eval):11:in `_fast_attributes' lib/

14:20

[Telegram Bridge] Не удалось передать сообщение: [1/12] [policy] 'require_plugin_enabled' ✅ [2/12] [contract] 'default' ✅ [3/12] [model] 'channel_id' ❌ [4/12] [policy] 'require_channel_id_vaild' [5/12] [p

16:22

2

[Telegram Bridge] Не удалось передать сообщение: [1/12] [policy] 'require_plugin_enabled' ✅ [2/12] [contract] 'default' ✅ [3/12] [model] 'channel_id' ❌ [4/12] [policy] 'require_channel_id_vaild' [5/12] [p

17:31

93

Исключение в задаче: undefined method `include?' for nil:NilClass

17:58

275

Исключение в задаче: undefined method `include?' for nil:NilClass

18:14

Да, я отключил плагины через настройки администратора.

В идеале вам нужно щёлкнуть по конкретной ошибке, связанной с проблемой, и скопировать сообщение, чтобы вставить его сюда. Вероятным вариантом может быть следующее:

NoMethodError (undefined method `enable_personal_messages?' for SiteSetting:Class) app/serializers/topic_view_details_serializer.rb:127:in `include_can_invite_to?' (eval):11:in `_fast_attributes' lib/

Хотя, если у вас есть сторонние плагины, влияющие на личные сообщения, то стоит начать именно с них. Как отмечает Pfaffman, иногда безопасного режима недостаточно, и вам придётся удалить плагин из файла app.yml и пересобрать систему. Какие плагины установлены на вашем сайте?

Этого недостаточно для полного отключения многих плагинов. Вам нужно закомментировать их в файле app.yml и выполнить пересборку.

Это будет проблемой, но, скорее всего, пока нет.

Вы используете мульти-сайт?

У вас установлен старый плагин чата (он теперь встроен в ядро)?

Вы должны предоставить список используемых плагинов.

Так же, как и @pfaffman, я сам не программист и могу неправильно интерпретировать некоторые ваши слова. Поэтому я решил поделиться ссылкой на эту тему с моим программистом.

Скорее всего, это плагин Custom Trust Level. Недавно у кого-то возникла похожая проблема с ним:

Вам (или вашему разработчику) нужно удалить этот плагин из файла app.yml и пересобрать систему без него. Надеюсь, это всё исправит. :crossed_fingers:

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

Кстати, я думаю, что наш тарифный план Business поставляется с примерно 31 интеграцией (все официальные, так что, вероятно, меньше поводов для беспокойства).

Привет! Да, вы были правы :100: Проблема была вызвана плагином Custom Trust Level. Наш программист поступил так, как вы и @pfaffman посоветовали. Очень благодарны вам обоим за отличную поддержку :pray:

Да, возможно, вы правы. Я понимаю, что плагинов слишком много, и в будущем (во время любых обновлений) могут возникать ошибки. Но я только начинаю новый проект с использованием ИИ и хочу протестировать все плагины, чтобы понять, какие из них действительно пригодятся для моего проекта, а какие в дальнейшем не понадобятся.