Mi versión de Discourse es 2026.5.0-latest.1 (fbcbdc46d8)
Estoy viendo errores repetidos en /logs al cargar los mensajes de un tema. El error parece provenir del plugin integrado discourse-reactions mientras se serializa el flujo de mensajes.
El sitio reporta el mensaje como 8 copias reportadas.
Revisé el rango de comparación a continuación, pero no parece que afecte la ruta de código backend que falla, por lo que lo estoy reportando por separado:
[details=„Mensaje de error de /logs"]
Mensaje (8 copias reportadas)
NameError (constante no inicializada ReactionsSerializerHelpers)
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 „bloque en 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"
[/details]
[details=„Backtrace de /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 „bloque en AbstractController::Callbacks#process_action"
activesupport (8.0.5) lib/active_support/callbacks.rb:120:in „bloque en ActiveSupport::Callbacks#run_callbacks"
app/controllers/application_controller.rb:452:in „bloque en 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 „bloque en 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 „bloque en 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 „bloque en ActionController::Instrumentation#process_action"
activesupport (8.0.5) lib/active_support/notifications.rb:210:in „bloque en 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 „bloque en 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 „bloque en ActionDispatch::Journey::Router#serve"
actionpack (8.0.5) lib/action_dispatch/journey/router.rb:133:in „bloque en 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 „bloque en 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
[/details]
Lo que parece estar ocurriendo
El error ocurre cuando TopicsController#posts renderiza JSON para el flujo de mensajes.
El backtrace apunta a:
plugins/discourse-reactions/lib/discourse_reactions/posts_reaction_loader.rb
y luego a:
plugins/discourse-reactions/lib/discourse_reactions/topic_view_posts_serializer_extension.rb
La constante que falla parece ser:
ReactionsSerializerHelpers
Por lo tanto, esto parece ser:
ReactionsSerializerHelpersno se está cargando/definiendo antes de que PostsReactionLoader la reference, o- un estado obsoleto o mezclado del plugin/núcleo está haciendo que el plugin de reacciones integrado reference un auxiliar que no está presente en el código en ejecución.
Pregunta
¿Se espera que esto se corrija con un commit posterior, o es un problema de orden de carga/plugin integrado en discourse-reactions?
Estoy encantado de proporcionar más detalles del entorno si es útil.