Удаление темы в Discourse не удалось из-за ошибки

Что-то в плагине AI сломало приложение Discourse: я обнаружил, что удалить все темы невозможно (ошибка 500 Internal Server Error).
В панели администратора плагина AI исчезли вкладки «LLM», «Personas» и «Tools», поэтому я не могу удалить свою модель LLM.
Я отключил автоматизацию, связанную с токсичными темами, отключил плагин AI, отключил плагин Automation, но проблема сохраняется.
Затем я удалил строку плагина AI из файла app.yml и выполнил уничтожение/пересборку/запуск приложения, но проблема всё ещё остаётся.
Мы проверили базу данных PostgreSQL, и там до сих пор есть несколько таблиц, связанных с плагином AI.

Вот некоторые детали об ошибке 500, возникающей при попытке удалить тему или пост:

ArgumentError (Empty list of attributes to change)
lib/post_destroyer.rb:361:in `trash_public_post_actions'
lib/post_destroyer.rb:186:in `block in perform_delete'
lib/post_destroyer.rb:177:in `perform_delete'
lib/post_destroyer.rb:79:in `destroy'
app/controllers/topics_controller.rb:687:in `destroy'
app/controllers/application_controller.rb:424:in `block in with_resolved_locale'
app/controllers/application_controller.rb:424:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:399:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:35:in `call_app'
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:22:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:360:in `call'

трассировка стека

activerecord (7.1.3.4) lib/active_record/relation.rb:508:in `update_all'
lib/post_destroyer.rb:361:in `trash_public_post_actions'
lib/post_destroyer.rb:186:in `block in perform_delete'
activerecord (7.1.3.4) lib/active_record/connection_adapters/abstract/transaction.rb:535:in `block in within_new_transaction'
activesupport (7.1.3.4) lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
activerecord (7.1.3.4) lib/active_record/connection_adapters/abstract/transaction.rb:532:in `within_new_transaction'
activerecord (7.1.3.4) lib/active_record/connection_adapters/abstract/database_statements.rb:344:in `transaction'
activerecord (7.1.3.4) lib/active_record/transactions.rb:212:in `transaction'
lib/post_destroyer.rb:177:in `perform_delete'
lib/post_destroyer.rb:79:in `destroy'
app/controllers/topics_controller.rb:687:in `destroy'
actionpack (7.1.3.4) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.1.3.4) lib/abstract_controller/base.rb:224:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:259:in `block in process_action'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
app/controllers/application_controller.rb:424:in `block in with_resolved_locale'
i18n (1.14.5) lib/i18n.rb:351:in `with_locale'
app/controllers/application_controller.rb:424:in `with_resolved_locale'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:130:in `block in run_callbacks'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:141:in `run_callbacks'
actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:258:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/rescue.rb:25:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:74:in `block in process_action'
activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.1.3.4) lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:73:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/params_wrapper.rb:261:in `process_action'
activerecord (7.1.3.4) lib/active_record/railties/controller_runtime.rb:32:in `process_action'
actionpack (7.1.3.4) lib/abstract_controller/base.rb:160:in `process'
actionview (7.1.3.4) lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler (3.3.1) lib/mini_profiler/profiling_methods.rb:115:in `block in profile_method' 
actionpack (7.1.3.4) lib/action_controller/metal.rb:227:in `dispatch'
actionpack (7.1.3.4) lib/action_controller/metal.rb:309:in `dispatch'
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:51:in `block in serve'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:131:in `block in find_routes'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in `each'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in `find_routes'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:882:in `call'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack (2.2.9) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.9) lib/rack/conditional_get.rb:40:in `call'
rack (2.2.9) lib/rack/head.rb:12:in `call'
actionpack (7.1.3.4) lib/action_dispatch/http/permissions_policy.rb:36:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:399:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
rack (2.2.9) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.9) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/cookies.rb:689:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:28:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
logster (2.20.0) lib/logster/middleware/reporter.rb:40:in `call'
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:35:in `call_app'
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:22:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/request_id.rb:28:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
rack (2.2.9) lib/rack/method_override.rb:24:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.9) lib/rack/sendfile.rb:110:in `call'
rack-mini-profiler (3.3.1) lib/mini_profiler.rb:334:in `call'
message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:360:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/remote_ip.rb:92:in `call'
railties (7.1.3.4) lib/rails/engine.rb:536:in `call'
railties (7.1.3.4) lib/rails/railtie.rb:226:in `public_send'
railties (7.1.3.4) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.9) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.9) lib/rack/urlmap.rb:58:in `each'
rack (2.2.9) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'

Кроме того, возникает исключение Job exception: undefined method `scheduled?’ for nil со следующей трассировкой стека:

/var/www/discourse/app/jobs/scheduled/run_problem_checks.rb:19:in `block in execute' 
activerecord-7.1.3.4/lib/active_record/relation/delegation.rb:100:in `each' 
activerecord-7.1.3.4/lib/active_record/relation/delegation.rb:100:in `each' 
/var/www/discourse/app/jobs/scheduled/run_problem_checks.rb:18:in `filter_map' 
/var/www/discourse/app/jobs/scheduled/run_problem_checks.rb:18:in `execute' 
/var/www/discourse/app/jobs/base.rb:305:in `block (2 levels) in perform' 
rails_multisite-6.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.0.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:292:in `block in perform' 
/var/www/discourse/app/jobs/base.rb:288:in `each' 
/var/www/discourse/app/jobs/base.rb:288:in `perform' 
/var/www/discourse/app/jobs/base.rb:359:in `perform' 
mini_scheduler-0.16.0/lib/mini_scheduler/manager.rb:122:in `process_queue' 
mini_scheduler-0.16.0/lib/mini_scheduler/manager.rb:70:in `worker_loop' 
mini_scheduler-0.16.0/lib/mini_scheduler/manager.rb:59:in `block (2 levels) in ensure_worker_threads' 

Спасибо

Привет, @Alessandra_Casale / @ecesarini,

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

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

Судя по логам, установка повреждена и в ней отсутствуют файлы, поэтому для помощи нам нужна дополнительная информация.

Привет,
спасибо за помощь.

  • Discourse развёрнут через Docker с использованием конфигурационного файла на основе образца standalone.yml, который можно найти в официальном репозитории discourse_docker. Мы просто задали необходимые поля и список плагинов для установки. Экземпляр работает уже несколько месяцев, и подобных проблем до включения и активации плагина AI никогда не возникало.
  • Версия Discourse/тег образа — v3.3.2.
  • Да, мы несколько раз уничтожали и пересобирали экземпляр, но ошибка 500 всё ещё возникает, когда администраторы пытаются удалить любой пост или тему через веб-интерфейс. Ошибок не возникает при удалении элементов через CLI в консоли Rails (например, Post.find(<#ID>).destroy).

Если мы пытаемся редактировать или перемещать посты/темы, всё работает нормально.

Вот список плагинов, если это может быть полезно:

          - git clone https://github.com/discourse/discourse-oauth2-basic.git
          - git clone https://github.com/discourse/discourse-openid-connect.git
          - git clone https://github.com/discourse/discourse-saml.git
          - git clone https://github.com/discourse/discourse-post-voting.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-docs.git
          - git clone https://github.com/discourse/discourse-chat-integration.git
          #- git clone https://github.com/discourse/discourse-ai.git
          - git clone https://github.com/discourse/discourse-math.git
          - git clone https://github.com/discourse/discourse-tooltips.git
          #- git clone https://github.com/discourse/discourse-jira.git
          - git clone https://github.com/discourse/discourse-category-experts.git
          - git clone https://github.com/discourse/discourse-topic-voting.git
          - git clone https://github.com/discourse/discourse-assign.git
          - git clone https://github.com/discourse/discourse-templates.git
          - git clone https://github.com/discourse/discourse-translator.git
          - git clone https://github.com/discourse/discourse-gamification.git

При последней пересборке плагины ai и jira были закомментированы, но ошибки всё ещё возникают.

Привет, @Falco,
Я добавил сюда лог, который нашел на странице /logs нашего сообщества.

Если я удаляю тему:
ArgumentError (Empty list of attributes to change) lib/post_destroyer.rb:361:in trash_public_post_actions' lib/post_destroyer.rb:186:in block in perform_delete’ lib/post_destroyer.rb:177:in `perform

activerecord (7.1.3.4) lib/active_record/relation.rb:508:in `update_all'
lib/post_destroyer.rb:361:in `trash_public_post_actions'
lib/post_destroyer.rb:186:in `block in perform_delete'
activerecord (7.1.3.4) lib/active_record/connection_adapters/abstract/transaction.rb:535:in `block in within_new_transaction'
activesupport (7.1.3.4) lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
activerecord (7.1.3.4) lib/active_record/connection_adapters/abstract/transaction.rb:532:in `within_new_transaction'
activerecord (7.1.3.4) lib/active_record/connection_adapters/abstract/database_statements.rb:344:in `transaction'
activerecord (7.1.3.4) lib/active_record/transactions.rb:212:in `transaction'
lib/post_destroyer.rb:177:in `perform_delete'
lib/post_destroyer.rb:79:in `destroy'
app/controllers/topics_controller.rb:687:in `destroy'
actionpack (7.1.3.4) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.1.3.4) lib/abstract_controller/base.rb:224:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:259:in `block in process_action'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
app/controllers/application_controller.rb:424:in `block in with_resolved_locale'
i18n (1.14.5) lib/i18n.rb:351:in `with_locale'
app/controllers/application_controller.rb:424:in `with_resolved_locale'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:130:in `block in run_callbacks'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:141:in `run_callbacks'
actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:258:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/rescue.rb:25:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:74:in `block in process_action'
activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.1.3.4) lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:73:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/params_wrapper.rb:261:in `process_action'
activerecord (7.1.3.4) lib/active_record/railties/controller_runtime.rb:32:in `process_action'
actionpack (7.1.3.4) lib/abstract_controller/base.rb:160:in `process'
actionview (7.1.3.4) lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler (3.3.1) lib/mini_profiler/profiling_methods.rb:115:in `block in profile_method' 
actionpack (7.1.3.4) lib/action_controller/metal.rb:227:in `dispatch'
actionpack (7.1.3.4) lib/action_controller/metal.rb:309:in `dispatch'
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:51:in `block in serve'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:131:in `block in find_routes'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in `each'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in `find_routes'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:882:in `call'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack (2.2.9) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.9) lib/rack/conditional_get.rb:40:in `call'
rack (2.2.9) lib/rack/head.rb:12:in `call'
actionpack (7.1.3.4) lib/action_dispatch/http/permissions_policy.rb:36:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:399:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
rack (2.2.9) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.9) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/cookies.rb:689:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:28:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
logster (2.20.0) lib/logster/middleware/reporter.rb:40:in `call'
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:35:in `call_app'
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:22:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/request_id.rb:28:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
rack (2.2.9) lib/rack/method_override.rb:24:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.9) lib/rack/sendfile.rb:110:in `call'
rack-mini-profiler (3.3.1) lib/mini_profiler.rb:334:in `call'
message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:360:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/remote_ip.rb:92:in `call'
railties (7.1.3.4) lib/rails/engine.rb:536:in `call'
railties (7.1.3.4) lib/rails/railtie.rb:226:in `public_send'
railties (7.1.3.4) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.9) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.9) lib/rack/urlmap.rb:58:in `each'
rack (2.2.9) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'

Если я удаляю пост:
ArgumentError (Empty list of attributes to change) lib/post_destroyer.rb:361:in trash_public_post_actions' lib/post_destroyer.rb:186:in block in perform_delete’ lib/post_destroyer.rb:177:in `perform

activerecord (7.1.3.4) lib/active_record/relation.rb:508:in `update_all'
lib/post_destroyer.rb:361:in `trash_public_post_actions'
lib/post_destroyer.rb:186:in `block in perform_delete'
activerecord (7.1.3.4) lib/active_record/connection_adapters/abstract/transaction.rb:535:in `block in within_new_transaction'
activesupport (7.1.3.4) lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
activerecord (7.1.3.4) lib/active_record/connection_adapters/abstract/transaction.rb:532:in `within_new_transaction'
activerecord (7.1.3.4) lib/active_record/connection_adapters/abstract/database_statements.rb:344:in `transaction'
activerecord (7.1.3.4) lib/active_record/transactions.rb:212:in `transaction'
lib/post_destroyer.rb:177:in `perform_delete'
lib/post_destroyer.rb:79:in `destroy'
app/controllers/posts_controller.rb:362:in `destroy'
actionpack (7.1.3.4) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.1.3.4) lib/abstract_controller/base.rb:224:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:259:in `block in process_action'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
app/controllers/application_controller.rb:424:in `block in with_resolved_locale'
i18n (1.14.5) lib/i18n.rb:351:in `with_locale'
app/controllers/application_controller.rb:424:in `with_resolved_locale'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:130:in `block in run_callbacks'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:141:in `run_callbacks'
actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:258:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/rescue.rb:25:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:74:in `block in process_action'
activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.1.3.4) lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:73:in `process_action'
actionpack (7.1.3.4) lib/action_controller/metal/params_wrapper.rb:261:in `process_action'
activerecord (7.1.3.4) lib/active_record/railties/controller_runtime.rb:32:in `process_action'
actionpack (7.1.3.4) lib/abstract_controller/base.rb:160:in `process'
actionview (7.1.3.4) lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler (3.3.1) lib/mini_profiler/profiling_methods.rb:115:in `block in profile_method' 
actionpack (7.1.3.4) lib/action_controller/metal.rb:227:in `dispatch'
actionpack (7.1.3.4) lib/action_controller/metal.rb:309:in `dispatch'
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:51:in `block in serve'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:131:in `block in find_routes'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in `each'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in `find_routes'
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:882:in `call'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack (2.2.9) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.9) lib/rack/conditional_get.rb:40:in `call'
rack (2.2.9) lib/rack/head.rb:12:in `call'
actionpack (7.1.3.4) lib/action_dispatch/http/permissions_policy.rb:36:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:399:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
rack (2.2.9) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.9) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/cookies.rb:689:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (7.1.3.4) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:28:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
logster (2.20.0) lib/logster/middleware/reporter.rb:40:in `call'
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:35:in `call_app'
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:22:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/request_id.rb:28:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
rack (2.2.9) lib/rack/method_override.rb:24:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.9) lib/rack/sendfile.rb:110:in `call'
rack-mini-profiler (3.3.1) lib/mini_profiler.rb:334:in `call'
message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:360:in `call'
actionpack (7.1.3.4) lib/action_dispatch/middleware/remote_ip.rb:92:in `call'
railties (7.1.3.4) lib/rails/engine.rb:536:in `call'
railties (7.1.3.4) lib/rails/railtie.rb:226:in `public_send'
railties (7.1.3.4) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.9) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.9) lib/rack/urlmap.rb:58:in `each'
rack (2.2.9) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'

Эти два лога отличаются только в 11-й строке:

app/controllers/topics_controller.rb:687:in `destroy'
app/controllers/posts_controller.rb:362:in `destroy'

Заранее спасибо за внимание!

Здравствуйте, у меня та же проблема: я не могу удалять сообщения.

Версия Discourse (Docker)

3.3.2

(84fa512335)

Информация:

Не удалось обработать исключение в промежуточном ПО обработки исключений: ArgumentError : Пустой список атрибутов для изменения

Трассировка стека:

activerecord-7.1.3.4/lib/active_record/relation.rb:508:in `update_all' 
/var/www/discourse/lib/post_destroyer.rb:361:in `trash_public_post_actions' 
/var/www/discourse/lib/post_destroyer.rb:186:in `block in perform_delete' 
activerecord-7.1.3.4/lib/active_record/connection_adapters/abstract/transaction.rb:535:in `block in within_new_transaction' 
activesupport-7.1.3.4/lib/active_support/concurrency/null_lock.rb:9:in `synchronize' 
activerecord-7.1.3.4/lib/active_record/connection_adapters/abstract/transaction.rb:532:in `within_new_transaction' 
activerecord-7.1.3.4/lib/active_record/connection_adapters/abstract/database_statements.rb:344:in `transaction' 
activerecord-7.1.3.4/lib/active_record/transactions.rb:212:in `transaction' 
/var/www/discourse/lib/post_destroyer.rb:177:in `perform_delete' 
/var/www/discourse/lib/post_destroyer.rb:79:in `destroy' 
/var/www/discourse/app/controllers/posts_controller.rb:362:in `destroy' 
actionpack-7.1.3.4/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action' 
actionpack-7.1.3.4/lib/abstract_controller/base.rb:224:in `process_action' 
actionpack-7.1.3.4/lib/action_controller/metal/rendering.rb:165:in `process_action' 
actionpack-7.1.3.4/lib/abstract_controller/callbacks.rb:259:in `block in process_action' 
activesupport-7.1.3.4/lib/active_support/callbacks.rb:121:in `block in run_callbacks' 
/var/www/discourse/app/controllers/application_controller.rb:424:in `block in with_resolved_locale' 
i18n-1.14.5/lib/i18n.rb:351:in `with_locale' 
/var/www/discourse/app/controllers/application_controller.rb:424:in `with_resolved_locale' 
activesupport-7.1.3.4/lib/active_support/callbacks.rb:130:in `block in run_callbacks' 
activesupport-7.1.3.4/lib/active_support/callbacks.rb:141:in `run_callbacks' 
actionpack-7.1.3.4/lib/abstract_controller/callbacks.rb:258:in `process_action' 
actionpack-7.1.3.4/lib/action_controller/metal/rescue.rb:25:in `process_action' 
actionpack-7.1.3.4/lib/action_controller/metal/instrumentation.rb:74:in `block in process_action' 
activesupport-7.1.3.4/lib/active_support/notifications.rb:206:in `block in instrument' 
activesupport-7.1.3.4/lib/active_support/notifications/instrumenter.rb:58:in `instrument' 
activesupport-7.1.3.4/lib/active_support/notifications.rb:206:in `instrument' 
actionpack-7.1.3.4/lib/action_controller/metal/instrumentation.rb:73:in `process_action' 
actionpack-7.1.3.4/lib/action_controller/metal/params_wrapper.rb:261:in `process_action' 
activerecord-7.1.3.4/lib/active_record/railties/controller_runtime.rb:32:in `process_action' 
actionpack-7.1.3.4/lib/abstract_controller/base.rb:160:in `process' 
actionview-7.1.3.4/lib/action_view/rendering.rb:40:in `process' 
rack-mini-profiler-3.3.1/lib/mini_profiler/profiling_methods.rb:115:in `block in profile_method' 
actionpack-7.1.3.4/lib/action_controller/metal.rb:227:in `dispatch' 
actionpack-7.1.3.4/lib/action_controller/metal.rb:309:in `dispatch' 
actionpack-7.1.3.4/lib/action_dispatch/routing/route_set.rb:49:in `dispatch' 
actionpack-7.1.3.4/lib/action_dispatch/routing/route_set.rb:32:in `serve' 
actionpack-7.1.3.4/lib/action_dispatch/journey/router.rb:51:in `block in serve' 
actionpack-7.1.3.4/lib/action_dispatch/journey/router.rb:131:in `block in find_routes' 
actionpack-7.1.3.4/lib/action_dispatch/journey/router.rb:124:in `each' 
actionpack-7.1.3.4/lib/action_dispatch/journey/router.rb:124:in `find_routes' 
actionpack-7.1.3.4/lib/action_dispatch/journey/router.rb:32:in `serve' 
actionpack-7.1.3.4/lib/action_dispatch/routing/route_set.rb:882:in `call' 
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:64:in `call' 
rack-2.2.9/lib/rack/tempfile_reaper.rb:15:in `call' 
rack-2.2.9/lib/rack/conditional_get.rb:40:in `call' 
rack-2.2.9/lib/rack/head.rb:12:in `call' 
actionpack-7.1.3.4/lib/action_dispatch/http/permissions_policy.rb:36:in `call' 
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call' 
/var/www/discourse/lib/middleware/anonymous_cache.rb:399:in `call' 
/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call' 
/var/www/discourse/config/initializers/008-rack-cors.rb:26:in `call' 
rack-2.2.9/lib/rack/session/abstract/id.rb:266:in `context' 
rack-2.2.9/lib/rack/session/abstract/id.rb:260:in `call' 
actionpack-7.1.3.4/lib/action_dispatch/middleware/cookies.rb:689:in `call' 
actionpack-7.1.3.4/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' 
activesupport-7.1.3.4/lib/active_support/callbacks.rb:101:in `run_callbacks' 
actionpack-7.1.3.4/lib/action_dispatch/middleware/callbacks.rb:28:in `call' 
actionpack-7.1.3.4/lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call' 
actionpack-7.1.3.4/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call' 
logster-2.20.0/lib/logster/middleware/reporter.rb:40:in `call' 
/var/www/discourse/lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:35:in `call_app' 
/var/www/discourse/lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:22:in `call' 
/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call' 
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call' 
actionpack-7.1.3.4/lib/action_dispatch/middleware/request_id.rb:28:in `call' 
/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call' 
rack-2.2.9/lib/rack/method_override.rb:24:in `call' 
actionpack-7.1.3.4/lib/action_dispatch/middleware/executor.rb:14:in `call' 
rack-2.2.9/lib/rack/sendfile.rb:110:in `call' 
rack-mini-profiler-3.3.1/lib/mini_profiler.rb:334:in `call' 
message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call' 
/var/www/discourse/lib/middleware/request_tracker.rb:360:in `call' 
actionpack-7.1.3.4/lib/action_dispatch/middleware/remote_ip.rb:92:in `call' 
railties-7.1.3.4/lib/rails/engine.rb:536:in `call' 
railties-7.1.3.4/lib/rails/railtie.rb:226:in `public_send' 
railties-7.1.3.4/lib/rails/railtie.rb:226:in `method_missing' 
rack-2.2.9/lib/rack/urlmap.rb:74:in `block in call' 
rack-2.2.9/lib/rack/urlmap.rb:58:in `each' 
rack-2.2.9/lib/rack/urlmap.rb:58:in `call' 
unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load' 
/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>' 

Плагины:

          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-reactions.git
          # doc-categories не работает в текущей версии Discourse
          #- git clone https://github.com/discourse/discourse-doc-categories.git 
          - git clone https://github.com/discourse/discourse-solved-reminders-plugin.git
          - git clone https://github.com/discourse/discourse-subscriptions.git
          - git clone https://github.com/discourse/discourse-post-voting.git
          - git clone https://github.com/discourse/discourse-newsletter-integration.git
          - git clone https://github.com/communiteq/discourse-private-replies.git
          - git clone https://github.com/discourse/discourse-calendar.git
          - git clone https://github.com/discourse/discourse-user-notes.git
          - git clone https://github.com/discourse/discourse-ai.git
          - git clone https://github.com/paviliondev/discourse-tickets.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/communiteq/discourse-geo-blocking.git
          - git clone https://github.com/discourse/discourse-translator.git
          - git clone https://github.com/Ebsy/discourse-nationalflags.git
          - git clone https://github.com/featheredtoast/discourse-pwned-passwords.git
          - git clone https://github.com/discourse/discourse-templates.git
          - git clone https://github.com/discourse/discourse-yearly-review.git
          - git clone https://github.com/paviliondev/discourse-legal-tools.git
          - git clone https://github.com/discourse/discourse-assign.git
          - git clone https://github.com/discourse/discourse-signatures.git
          - git clone https://github.com/discourse/discourse-whos-online.git
          - git clone https://github.com/singerscreations/discourse-stopforumspam.git

В данный момент я не могу удалить ни одного сообщения.
Буду бесконечно благодарен, если проблема будет решена.