Плагин голосования по темам: отсутствует история прошлых голосов, у пользователей возникают проблемы с голосованием

Всем привет,

Недавно мы переоборудовали наши форумы для использования версии 2026.4.0-latest, и теперь пользователи не могут просматривать прошлые голоса и испытывают трудности с голосованием. Я проверил логи, и похоже, что плагин Topic Voting использует устаревшие функции. Вот стек трассировки:

activesupport-8.0.5/lib/active_support/broadcast_logger.rb:218:in 'block in ActiveSupport::BroadcastLogger#dispatch' 
activesupport-8.0.5/lib/active_support/broadcast_logger.rb:217:in 'Array#map' 
activesupport-8.0.5/lib/active_support/broadcast_logger.rb:217:in 'ActiveSupport::BroadcastLogger#dispatch' 
activesupport-8.0.5/lib/active_support/broadcast_logger.rb:129:in 'ActiveSupport::BroadcastLogger#warn' 
/var/www/discourse/lib/discourse.rb:1146:in 'Discourse.deprecate' 
/var/www/discourse/app/controllers/topics_controller.rb:467:in 'TopicsController#update' 
actionpack-8.0.5/lib/action_controller/metal/basic_implicit_render.rb:8:in 'ActionController::BasicImplicitRender#send_action' 
actionpack-8.0.5/lib/abstract_controller/base.rb:215:in 'AbstractController::Base#process_action' 
actionpack-8.0.5/lib/action_controller/metal/rendering.rb:193:in 'ActionController::Rendering#process_action' 
actionpack-8.0.5/lib/abstract_controller/callbacks.rb:261:in 'block in AbstractController::Callbacks#process_action' 
activesupport-8.0.5/lib/active_support/callbacks.rb:120:in 'block in ActiveSupport::Callbacks#run_callbacks' 
/var/www/discourse/app/controllers/application_controller.rb:447:in 'block in ApplicationController#with_resolved_locale' 
i18n-1.14.8/lib/i18n.rb:354:in 'I18n::Base#with_locale' 
/var/www/discourse/app/controllers/application_controller.rb:447:in 'ApplicationController#with_resolved_locale' 
activesupport-8.0.5/lib/active_support/callbacks.rb:129:in 'block in ActiveSupport::Callbacks#run_callbacks' 
/var/www/discourse/app/controllers/application_controller.rb:1098:in 'ApplicationController#ensure_dont_cache_page' 
activesupport-8.0.5/lib/active_support/callbacks.rb:129:in 'block in ActiveSupport::Callbacks#run_callbacks' 
activesupport-8.0.5/lib/active_support/callbacks.rb:140:in 'ActiveSupport::Callbacks#run_callbacks' 
actionpack-8.0.5/lib/abstract_controller/callbacks.rb:260:in 'AbstractController::Callbacks#process_action' 
actionpack-8.0.5/lib/action_controller/metal/rescue.rb:27:in 'ActionController::Rescue#process_action' 
actionpack-8.0.5/lib/action_controller/metal/instrumentation.rb:76:in 'block in ActionController::Instrumentation#process_action' 
activesupport-8.0.5/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument' 
activesupport-8.0.5/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument' 
activesupport-8.0.5/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument' 
actionpack-8.0.5/lib/action_controller/metal/instrumentation.rb:75:in 'ActionController::Instrumentation#process_action' 
actionpack-8.0.5/lib/action_controller/metal/params_wrapper.rb:259:in 'ActionController::ParamsWrapper#process_action' 
activerecord-8.0.5/lib/active_record/railties/controller_runtime.rb:39:in 'ActiveRecord::Railties::ControllerRuntime#process_action' 
actionpack-8.0.5/lib/abstract_controller/base.rb:152:in 'AbstractController::Base#process' 
actionview-8.0.5/lib/action_view/rendering.rb:40:in 'ActionView::Rendering#process' 
rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in 'block in ActionController::Base#profile_method' 
actionpack-8.0.5/lib/action_controller/metal.rb:252:in 'ActionController::Metal#dispatch' 
actionpack-8.0.5/lib/action_controller/metal.rb:335:in 'ActionController::Metal.dispatch' 
actionpack-8.0.5/lib/action_dispatch/routing/route_set.rb:67:in 'ActionDispatch::Routing::RouteSet::Dispatcher#dispatch' 
actionpack-8.0.5/lib/action_dispatch/routing/route_set.rb:50:in 'ActionDispatch::Routing::RouteSet::Dispatcher#serve' 
actionpack-8.0.5/lib/action_dispatch/journey/router.rb:53:in 'block in ActionDispatch::Journey::Router#serve' 
actionpack-8.0.5/lib/action_dispatch/journey/router.rb:133:in 'block in ActionDispatch::Journey::Router#find_routes' 
actionpack-8.0.5/lib/action_dispatch/journey/router.rb:126:in 'Array#each' 
actionpack-8.0.5/lib/action_dispatch/journey/router.rb:126:in 'ActionDispatch::Journey::Router#find_routes' 
actionpack-8.0.5/lib/action_dispatch/journey/router.rb:34:in 'ActionDispatch::Journey::Router#serve' 
actionpack-8.0.5/lib/action_dispatch/routing/route_set.rb:908:in 'ActionDispatch::Routing::RouteSet#call' 
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:35:in 'Middleware::OmniauthBypassMiddleware#call' 
/var/www/discourse/lib/middleware/crawler_hooks.rb:11:in 'Middleware::CrawlerHooks#call' 
rack-2.2.22/lib/rack/tempfile_reaper.rb:15:in 'Rack::TempfileReaper#call' 
rack-2.2.22/lib/rack/conditional_get.rb:40:in 'Rack::ConditionalGet#call' 
rack-2.2.22/lib/rack/head.rb:12:in 'Rack::Head#call' 
actionpack-8.0.5/lib/action_dispatch/http/permissions_policy.rb:38:in 'ActionDispatch::PermissionsPolicy::Middleware#call' 
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in 'ContentSecurityPolicy::Middleware#call' 
/var/www/discourse/lib/middleware/anonymous_cache.rb:420:in 'Middleware::AnonymousCache#call' 
/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in 'Middleware::CspScriptNonceInjector#call' 
/var/www/discourse/config/initializers/008-rack-cors.rb:26:in 'Discourse::Cors#call' 
rack-2.2.22/lib/rack/session/abstract/id.rb:266:in 'Rack::Session::Abstract::Persisted#context' 
rack-2.2.22/lib/rack/session/abstract/id.rb:260:in 'Rack::Session::Abstract::Persisted#call' 
actionpack-8.0.5/lib/action_dispatch/middleware/cookies.rb:706:in 'ActionDispatch::Cookies#call' 
actionpack-8.0.5/lib/action_dispatch/middleware/callbacks.rb:31:in 'block in ActionDispatch::Callbacks#call' 
activesupport-8.0.5/lib/active_support/callbacks.rb:100:in 'ActiveSupport::Callbacks#run_callbacks' 
actionpack-8.0.5/lib/action_dispatch/middleware/callbacks.rb:30:in 'ActionDispatch::Callbacks#call' 
actionpack-8.0.5/lib/action_dispatch/middleware/debug_exceptions.rb:31:in 'ActionDispatch::DebugExceptions#call' 
actionpack-8.0.5/lib/action_dispatch/middleware/show_exceptions.rb:32:in 'ActionDispatch::ShowExceptions#call' 
logster-2.20.1/lib/logster/middleware/reporter.rb:40:in 'Logster::Middleware::Reporter#call' 
/var/www/discourse/lib/middleware/default_headers.rb:13:in 'Middleware::DefaultHeaders#call' 
railties-8.0.5/lib/rails/rack/logger.rb:41:in 'Rails::Rack::Logger#call_app' 
railties-8.0.5/lib/rails/rack/logger.rb:29:in 'Rails::Rack::Logger#call' 
/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in 'DiscourseRackQuietAssetsLogger#call' 
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in 'SilenceLogger#call' 
actionpack-8.0.5/lib/action_dispatch/middleware/request_id.rb:34:in 'ActionDispatch::RequestId#call' 
/var/www/discourse/lib/middleware/enforce_hostname.rb:23:in 'Middleware::EnforceHostname#call' 
rack-2.2.22/lib/rack/method_override.rb:24:in 'Rack::MethodOverride#call' 
actionpack-8.0.5/lib/action_dispatch/middleware/executor.rb:16:in 'ActionDispatch::Executor#call' 
rack-2.2.22/lib/rack/sendfile.rb:127:in 'Rack::Sendfile#call' 
rack-mini-profiler-4.0.1/lib/mini_profiler.rb:191:in 'Rack::MiniProfiler#call' 
message_bus-4.5.2/lib/message_bus/rack/middleware.rb:60:in 'MessageBus::Rack::Middleware#call' 
/var/www/discourse/lib/middleware/request_tracker.rb:321:in 'Middleware::RequestTracker#call' 
actionpack-8.0.5/lib/action_dispatch/middleware/remote_ip.rb:96:in 'ActionDispatch::RemoteIp#call' 
/var/www/discourse/lib/middleware/overload_protections.rb:22:in 'Middleware::OverloadProtections#call' 
/var/www/discourse/lib/middleware/processing_request.rb:14:in 'Middleware::ProcessingRequest#call' 
railties-8.0.5/lib/rails/engine.rb:535:in 'Rails::Engine#call' 
railties-8.0.5/lib/rails/railtie.rb:226:in 'Kernel#public_send' 
railties-8.0.5/lib/rails/railtie.rb:226:in 'Rails::Railtie.method_missing' 
rack-2.2.22/lib/rack/urlmap.rb:74:in 'block in Rack::URLMap#call' 
rack-2.2.22/lib/rack/urlmap.rb:58:in 'Array#each' 
rack-2.2.22/lib/rack/urlmap.rb:58:in 'Rack::URLMap#call' 
rack-2.2.22/lib/rack/tempfile_reaper.rb:15:in 'Rack::TempfileReaper#call' 
pitchfork-0.18.2/lib/pitchfork/chunked.rb:105:in 'Pitchfork::Chunked#call' 
rack-2.2.22/lib/rack/content_length.rb:17:in 'Rack::ContentLength#call' 
pitchfork-0.18.2/lib/pitchfork/http_server.rb:868:in 'Pitchfork::HttpServer#process_client' 
pitchfork-0.18.2/lib/pitchfork/http_server.rb:1017:in 'Pitchfork::HttpServer#worker_loop' 
pitchfork-0.18.2/lib/pitchfork/http_server.rb:616:in 'block in Pitchfork::HttpServer#spawn_worker' 
pitchfork-0.18.2/lib/pitchfork/http_server.rb:1222:in 'block in Pitchfork::HttpServer#fork_sibling' 
pitchfork-0.18.2/lib/pitchfork.rb:170:in 'block in Pitchfork.clean_fork' 
pitchfork-0.18.2/lib/pitchfork.rb:168:in 'Kernel#catch' 
pitchfork-0.18.2/lib/pitchfork.rb:168:in 'Pitchfork.clean_fork' 
pitchfork-0.18.2/lib/pitchfork/http_server.rb:690:in 'Pitchfork::HttpServer#spawn_initial_mold' 
pitchfork-0.18.2/lib/pitchfork/http_server.rb:176:in 'Pitchfork::HttpServer#start' 
pitchfork-0.18.2/exe/pitchfork:110:in '<top (required)>' 
/var/www/discourse/vendor/bundle/ruby/3.4.0/bin/pitchfork:25:in 'Kernel#load' 
/var/www/discourse/vendor/bundle/ruby/3.4.0/bin/pitchfork:25:in '<main>' 
infobacktraceenv
 Решить  Удалить  Защитить  Копировать  Поделиться
 Отладка
 Инфо
  Предупреждение
  Ошибка
  Критическая ошибка

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

Я тоже столкнулся с этим!!!
Это очень расстраивает, так как я активно использую плагин poll для голосования в своём проекте на основе Discourse. Уже более трёх часов я пытаюсь найти решение этой проблемы, но безуспешно. Надеюсь, что официальная команда вмешается и решит вопрос, иначе придётся искать альтернативу (на данный момент аналогов не обнаружено).

Эта проблема, похоже, также влияет на плагины Reactions и User Note: пользователи сообщают, что они теперь не работают. Опять же, это связано с устареванием параметра selected_tags. Учитывая, что эти плагины теперь включены в ядро, я ожидал, что эта проблема будет выявлена раньше.

УВЕДОМЛЕНИЕ ОБ УСТАРЕВАНИИ: Передача названий тегов в виде строк в параметр tags устарела. Используйте объекты тегов ({id, name}) вместо этого (устарело с версии Discourse 2026.01, будет удалено в версии Discourse 2026.07) В /var/www/
УВЕДОМЛЕНИЕ ОБ УСТАРЕВАНИИ: Параметр selected_tags устарел. Используйте selected_tag_ids вместо этого (устарело с версии Discourse 2026.01, будет удалено в версии Discourse 2026.07) В /var/www/discourse/vendor/bundle/ruby/3.4.0/

Версии 2026.3.0-latest и 2026.3.0-latest.1 также столкнулись с теми же проблемами, о которых сообщается в этом посте.

Похоже, что другие плагины также затронуты этой проблемой:

  • Calendar and Events

  • Solved

Возможно, проблема здесь? discourse/app/controllers/topics_controller.rb at 46e769b605d782dfee5cf1f6cb26571e42e9c431 · discourse/discourse · GitHub

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

Я не вижу в логах других проблем, связанных с этими плагинами. Есть ли что-то, что я могу запустить, чтобы помочь диагностировать причину этих проблем?

Работают ли у вас плагины? Видят ли пользователи, которые сообщают о неработоспособности, больше ошибок в консоли своего браузера?

Тот факт, что ваша проблема, похоже, затрагивает все плагины, напоминает мне эту недавнюю тему: All plugins not functioning due to CORS error after recent upgrade

1 лайк

Хм, я посмотрел в консоль разработчика и увидел кучу ошибок CDN, так что разберусь с этим подробнее! Возможно, это и есть корневая проблема.

1 лайк

Кстати, я не использую Bunny CDN, но получаю ошибку app.js:73 Failed to load plugin discourse-local-dates from TypeError: Failed to fetch dynamically imported module:, при этом JS-файл находится на CDN.

Я обновляю настройки CDN и сообщу вам о результатах.

Да, эта проблема связана с тем, как теперь загружаются модули плагинов. Мне пришлось обновить заголовки в нашем CDN, чтобы исправить проблему с CORS и ES-модулями.

Не удалось загрузить ресурс: сервер ответил со статусом 500 ()
Это тоже вызвано CDN? :face_with_monocle:
В консоли у меня ошибка именно такая

Есть ли шансы, что это исправлено в

3 лайка

У вас есть скриншот, которым вы можете поделиться?


После перехода к посту с голосованием отображается этот скриншот. В консоли разработчика (F12) видны ошибки 500, проблемы с загрузкой JavaScript и сообщение об ошибке внутреннего сервиса, однако явных ошибок CORS не возникает.

Вы выполняли обновление после того, как Zogstrip опубликовал исправление?

У вас есть доступ к yourForum/logs? Есть ли там какие-либо детали об ошибках 500?

No other updates have been performed; there are poll-related errors in /logs.