Ma version de Discourse est 2026.5.0-latest.1 (fbcbdc46d8)
Je constate des erreurs répétées sur /logs lors du chargement des messages d’un sujet. L’erreur semble provenir du plugin intégré discourse-reactions lors de la sérialisation du flux de messages.
Le site indique que le message a été signalé 8 fois.
J’ai examiné la plage de comparaison ci-dessous, mais elle ne semble pas toucher le chemin de code backend défaillant, je signale donc ce problème séparément :
Message d'erreur depuis /logs
Message (8 signalements)
NameError (constante ReactionsSerializerHelpers non initialisée)
app/serializers/post_stream_serializer_mixin.rb:31:in « PostStreamSerializerMixin#post_stream »
app/controllers/application_controller.rb:531:in « ApplicationController#render_json_dump »
app/controllers/topics_controller.rb:296:in « TopicsController#posts »
app/controllers/application_controller.rb:452:in « bloc dans ApplicationController#with_resolved_locale »
app/controllers/application_controller.rb:452:in « ApplicationController#with_resolved_locale »
app/controllers/application_controller.rb:1103:in « ApplicationController#ensure_dont_cache_page »
lib/middleware/omniauth_bypass_middleware.rb:35:in « Middleware::OmniauthBypassMiddleware#call »
lib/middleware/crawler_hooks.rb:13:in « Middleware::CrawlerHooks#call »
lib/content_security_policy/middleware.rb:12:in « ContentSecurityPolicy::Middleware#call »
lib/middleware/anonymous_cache.rb:420:in « Middleware::AnonymousCache#call »
lib/middleware/csp_script_nonce_injector.rb:12:in « Middleware::CspScriptNonceInjector#call »
lib/middleware/track_view_session_id_injector.rb:12:in « Middleware::TrackViewSessionIdInjector#call »
config/initializers/008-rack-cors.rb:14:in « Discourse::Cors#call »
lib/middleware/default_headers.rb:13:in « Middleware::DefaultHeaders#call »
config/initializers/100-quiet_logger.rb:20:in « DiscourseRackQuietAssetsLogger#call »
config/initializers/100-silence_logger.rb:29:in « SilenceLogger#call »
lib/middleware/enforce_hostname.rb:23:in « Middleware::EnforceHostname#call »
lib/middleware/request_tracker.rb:372:in « Middleware::RequestTracker#call »
lib/middleware/overload_protections.rb:18:in « Middleware::OverloadProtections#call »
lib/middleware/processing_request.rb:14:in « Middleware::ProcessingRequest#call »
Backtrace depuis /logs
Backtrace
plugins/discourse-reactions/lib/discourse_reactions/posts_reaction_loader.rb:10:in « DiscourseReactions::PostsReactionLoader#posts_with_reactions »
plugins/discourse-reactions/lib/discourse_reactions/topic_view_posts_serializer_extension.rb:7:in « DiscourseReactions::TopicViewPostsSerializerExtension#posts »
app/serializers/post_stream_serializer_mixin.rb:31:in « PostStreamSerializerMixin#post_stream »
(eval at active_model_serializers-0.8.4/lib/active_model/serializer.rb:467):3:in « TopicViewPostsSerializer#_fast_attributes »
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in « ActiveModel::Serializer#attributes »
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in « ActiveModel::Serializer#_serializable_hash »
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in « ActiveModel::Serializer#serializable_hash »
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in « ActiveModel::Serializer#as_json »
activesupport (8.0.5) lib/active_support/json/encoding.rb:41:in « Oj::Rails::Encoder#encode »
activesupport (8.0.5) lib/active_support/json/encoding.rb:41:in « ActiveSupport::JSON.encode »
activesupport (8.0.5) lib/active_support/core_ext/object/json.rb:42:in « ActiveSupport::ToJsonWithActiveSupportEncoder#to_json »
active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in « ActiveModel::Serializer#to_json »
multi_json (1.20.1) lib/multi_json/adapters/oj.rb:67:in « Oj.dump »
multi_json (1.20.1) lib/multi_json/adapters/oj.rb:67:in « MultiJson::Adapters::Oj#dump »
multi_json (1.20.1) lib/multi_json/adapter.rb:92:in « MultiJson::Adapter.dump »
multi_json (1.20.1) lib/multi_json.rb:214:in « MultiJson.dump »
app/controllers/application_controller.rb:531:in « ApplicationController#render_json_dump »
app/controllers/topics_controller.rb:296:in « TopicsController#posts »
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 « bloc dans AbstractController::Callbacks#process_action »
activesupport (8.0.5) lib/active_support/callbacks.rb:120:in « bloc dans ActiveSupport::Callbacks#run_callbacks »
app/controllers/application_controller.rb:452:in « bloc dans ApplicationController#with_resolved_locale »
i18n (1.14.8) lib/i18n.rb:354:in « I18n::Base#with_locale »
app/controllers/application_controller.rb:452:in « ApplicationController#with_resolved_locale »
activesupport (8.0.5) lib/active_support/callbacks.rb:129:in « bloc dans ActiveSupport::Callbacks#run_callbacks »
app/controllers/application_controller.rb:1103:in « ApplicationController#ensure_dont_cache_page »
activesupport (8.0.5) lib/active_support/callbacks.rb:129:in « bloc dans 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 « bloc dans ActionController::Instrumentation#process_action »
activesupport (8.0.5) lib/active_support/notifications.rb:210:in « bloc dans 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 « bloc dans 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 « bloc dans ActionDispatch::Journey::Router#serve »
actionpack (8.0.5) lib/action_dispatch/journey/router.rb:133:in « bloc dans 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 »
lib/middleware/omniauth_bypass_middleware.rb:35:in « Middleware::OmniauthBypassMiddleware#call »
lib/middleware/crawler_hooks.rb:13:in « Middleware::CrawlerHooks#call »
rack (2.2.23) lib/rack/tempfile_reaper.rb:15:in « Rack::TempfileReaper#call »
rack (2.2.23) lib/rack/conditional_get.rb:27:in « Rack::ConditionalGet#call »
rack (2.2.23) 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 »
lib/content_security_policy/middleware.rb:12:in « ContentSecurityPolicy::Middleware#call »
lib/middleware/anonymous_cache.rb:420:in « Middleware::AnonymousCache#call »
lib/middleware/csp_script_nonce_injector.rb:12:in « Middleware::CspScriptNonceInjector#call »
lib/middleware/track_view_session_id_injector.rb:12:in « Middleware::TrackViewSessionIdInjector#call »
config/initializers/008-rack-cors.rb:14:in « Discourse::Cors#call »
rack (2.2.23) lib/rack/session/abstract/id.rb:266:in « Rack::Session::Abstract::Persisted#context »
rack (2.2.23) 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 « bloc dans 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.21.0) lib/logster/middleware/reporter.rb:40:in « Logster::Middleware::Reporter#call »
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 »
config/initializers/100-quiet_logger.rb:20:in « DiscourseRackQuietAssetsLogger#call »
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 »
lib/middleware/enforce_hostname.rb:23:in « Middleware::EnforceHostname#call »
rack (2.2.23) lib/rack/method_overrid
Ce qui semble se produire
L’erreur survient lorsque TopicsController#posts rend du JSON pour le flux de messages.
Le backtrace pointe vers :
plugins/discourse-reactions/lib/discourse_reactions/posts_reaction_loader.rb
puis vers :
plugins/discourse-reactions/lib/discourse_reactions/topic_view_posts_serializer_extension.rb
La constante défaillante semble être :
ReactionsSerializerHelpers
Cela ressemble donc soit à :
ReactionsSerializerHelpersqui n’est pas chargé/défini avant quePostsReactionLoaderne le référence, soit- un état obsolète/mêlé du plugin ou du noyau qui amène le plugin reactions intégré à référencer un helper absent du code en cours d’exécution.
Question
Cela devrait-il être corrigé par un commit ultérieur, ou s’agit-il d’un problème d’ordre de chargement / de plugin intégré dans discourse-reactions ?
Je suis ravi de fournir d’autres détails sur l’environnement si utile.