Le plugin Reactions provoque une erreur "Une erreur s'est produite" lors de la confirmation de l'emoji

Plusieurs utilisateurs de mon forum Discourse, dont moi-même, avons rencontré un bug avec le plugin Réactions.

Environnement

Nous utilisons la version 2.8.0.beta10 ( 07c010422b )

Étapes pour reproduire le problème

Le problème est imprévisible et semble se produire sur différents navigateurs, en mode mobile ou bureau, et selon d’autres variables. Voici cependant comment il se manifeste lorsqu’il survient :

  1. Accédez à une réponse sur le forum.
  2. Passez la souris sur l’icône en forme de cœur des Réactions.
  3. Sélectionnez une réaction (par exemple, un emoji câlin ou cœur).
  4. Une boîte de dialogue s’affiche avec le message d’erreur : « Quelque chose s’est mal passé. »

Rapport d’erreur de Discourse

Message (98 copies signalées)

NoMethodError (méthode `user` non définie pour nil:NilClass. Voulez-vous dire ? super) app/services/notifications/delete_previous_notifications.rb:30:in `can_consolidate_data?' app/services/notifications/consolidation_planner.rb:18:in `block in plan_for' app/services/notifications/consolidation_planner.rb:18:in `each' app/services/notifications/consolidation_planner.rb:18:in `detect' app/services/notifications/consolidation_planner.rb:18:in `plan_for' app/services/notifications/consolidation_planner.rb:6:in `consolidate_or_save!' app/models/notification.rb:38:in `consolidate_or_create!' app/services/post_alerter.rb:507:in `create_notification' app/controllers/application_controller.rb:387:in `block in with_resolved_locale' app/controllers/application_controller.rb:387:in `with_resolved_locale' lib/middleware/omniauth_bypass_middleware.rb:71:in `call' lib/content_security_policy/middleware.rb:12:in `call' lib/middleware/anonymous_cache.rb:356:in `call' config/initializers/100-quiet_logger.rb:23:in `call' config/initializers/100-silence_logger.rb:31:in `call' lib/middleware/enforce_hostname.rb:23:in `call' lib/middleware/request_tracker.rb:198:in `call'

Backtrace

plugins/discourse-reactions/plugin.rb:293:in `block (2 levels) in activate!'

app/services/notifications/delete_previous_notifications.rb:30:in `can_consolidate_data?'

app/services/notifications/consolidation_planner.rb:18:in `block in plan_for'

app/services/notifications/consolidation_planner.rb:18:in `each'

app/services/notifications/consolidation_planner.rb:18:in `detect'

app/services/notifications/consolidation_planner.rb:18:in `plan_for'

app/services/notifications/consolidation_planner.rb:6:in `consolidate_or_save!'

app/models/notification.rb:38:in `consolidate_or_create!'

activerecord (6.1.4.1) lib/active_record/relation/delegation.rb:67:in `block in consolidate_or_create!'

activerecord (6.1.4.1) lib/active_record/relation.rb:406:in `block in scoping'

activerecord (6.1.4.1) lib/active_record/relation.rb:804:in `_scoping'

activerecord (6.1.4.1) lib/active_record/relation.rb:406:in `scoping'

activerecord (6.1.4.1) lib/active_record/associations/collection_proxy.rb:1109:in `scoping'

activerecord (6.1.4.1) lib/active_record/relation/delegation.rb:67:in `consolidate_or_create!'

app/services/post_alerter.rb:507:in `create_notification'

plugins/discourse-reactions/app/services/discourse_reactions/reaction_notification.rb:16:in `create'

plugins/discourse-reactions/app/services/discourse_reactions/reaction_manager.rb:46:in `add_reaction_notification'

plugins/discourse-reactions/app/services/discourse_reactions/reaction_manager.rb:91:in `add_reaction'

plugins/discourse-reactions/app/services/discourse_reactions/reaction_manager.rb:38:in `toggle_reaction'

plugins/discourse-reactions/app/services/discourse_reactions/reaction_manager.rb:21:in `block in toggle!'

activerecord (6.1.4.1) lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `block in transaction'

activerecord (6.1.4.1) lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'

activesupport (6.1.4.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'

activesupport (6.1.4.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'

activesupport (6.1.4.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'

activesupport (6.1.4.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'

activesupport (6.1.4.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'

activerecord (6.1.4.1) lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'

activerecord (6.1.4.1) lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `transaction'

activerecord (6.1.4.1) lib/active_record/transactions.rb:209:in `transaction'

plugins/discourse-reactions/app/services/discourse_reactions/reaction_manager.rb:18:in `toggle!'

plugins/discourse-reactions/app/controllers/discourse_reactions/custom_reactions_controller.rb:17:in `toggle'

actionpack (6.1.4.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack (6.1.4.1) lib/abstract_controller/base.rb:228:in `process_action'

actionpack (6.1.4.1) lib/action_controller/metal/rendering.rb:30:in `process_action'

actionpack (6.1.4.1) lib/abstract_controller/callbacks.rb:42:in `block in process_action'

activesupport (6.1.4.1) lib/active_support/callbacks.rb:117:in `block in run_callbacks'

app/controllers/application_controller.rb:387:in `block in with_resolved_locale'

i18n (1.8.11) lib/i18n.rb:314:in `with_locale'

app/controllers/application_controller.rb:387:in `with_resolved_locale'

activesupport (6.1.4.1) lib/active_support/callbacks.rb:126:in `block in run_callbacks'

activesupport (6.1.4.1) lib/active_support/callbacks.rb:137:in `run_callbacks'

actionpack (6.1.4.1) lib/abstract_controller/callbacks.rb:41:in `process_action'

actionpack (6.1.4.1) lib/action_controller/metal/rescue.rb:22:in `process_action'

actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'

activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `block in instrument'

activesupport (6.1.4.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'

activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `instrument'

actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:33:in `process_action'

actionpack (6.1.4.1) lib/action_controller/metal/params_wrapper.rb:249:in `process_action'

activerecord (6.1.4.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action'

actionpack (6.1.4.1) lib/abstract_controller/base.rb:165:in `process'

actionview (6.1.4.1) lib/action_view/rendering.rb:39:in `process'

rack-mini-profiler (2.3.3) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'

actionpack (6.1.4.1) lib/action_controller/metal.rb:190:in `dispatch'

actionpack (6.1.4.1) lib/action_controller/metal.rb:254:in `dispatch'

actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'

actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:33:in `serve'

actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'

actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `each'

actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:842:in `call'

railties (6.1.4.1) lib/rails/engine.rb:539:in `call'

railties (6.1.4.1) lib/rails/railtie.rb:207:in `public_send'

railties (6.1.4.1) lib/rails/railtie.rb:207:in `method_missing'

actionpack (6.1.4.1) lib/action_dispatch/routing/mapper.rb:20:in `block in <class:Constraints>'

actionpack (6.1.4.1) lib/action_dispatch/routing/mapper.rb:49:in `serve'

actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'

actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `each'

actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:842:in `call'

lib/middleware/omniauth_bypass_middleware.rb:71:in `call'

rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'

rack (2.2.3) lib/rack/conditional_get.rb:40:in `call'

rack (2.2.3) lib/rack/head.rb:12:in `call'

actionpack (6.1.4.1) lib/action_dispatch/http/permissions_policy.rb:22:in `call'

lib/content_security_policy/middleware.rb:12:in `call'

lib/middleware/anonymous_cache.rb:356:in `call'

rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'

rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'

actionpack (6.1.4.1) lib/action_dispatch/middleware/cookies.rb:689:in `call'

actionpack (6.1.4.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'

activesupport (6.1.4.1) lib/active_support/callbacks.rb:98:in `run_callbacks'

actionpack (6.1.4.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call'

actionpack (6.1.4.1) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'

actionpack (6.1.4.1) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'

actionpack (6.1.4.1) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'

logster (2.10.1) lib/logster/middleware/reporter.rb:43:in `call'

railties (6.1.4.1) lib/rails/rack/logger.rb:37:in `call_app'

railties (6.1.4.1) lib/rails/rack/logger.rb:28:in `call'

config/initializers/100-quiet_logger.rb:23:in `call'

config/initializers/100-silence_logger.rb:31:in `call'

actionpack (6.1.4.1) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'

actionpack (6.1.4.1) lib/action_dispatch/middleware/request_id.rb:26:in `call'

lib/middleware/enforce_hostname.rb:23:in `call'

rack (2.2.3) lib/rack/method_override.rb:24:in `call'

actionpack (6.1.4.1) lib/action_dispatch/middleware/executor.rb:14:in `call'

rack (2.2.3) lib/rack/sendfile.rb:110:in `call'

actionpack (6.1.4.1) lib/action_dispatch/middleware/host_authorization.rb:92:in `call'

rack-mini-profiler (2.3.3) lib/mini_profiler/profiler.rb:249:in `call'

message_bus (3.3.8) lib/message_bus/rack/middleware.rb:61:in `call'

lib/middleware/request_tracker.rb:198:in `call'

railties (6.1.4.1) lib/rails/engine.rb:539:in `call'

railties (6.1.4.1) lib/rails/railtie.rb:207:in `public_send'

railties (6.1.4.1) lib/rails/railtie.rb:207:in `method_missing'

rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'

rack (2.2.3) lib/rack/urlmap.rb:58:in `each'

rack (2.2.3) lib/rack/urlmap.rb:58:in `call'

unicorn (6.0.0) lib/unicorn/http_server.rb:634:in `process_client'

unicorn (

Merci de nous avoir informés, @JoelZaslofsky !

Pour la v.2.8.0.beta10, j’ai incorrectement épinglé le plugin à un commit qui repose sur un changement du cœur de Discourse qui n’est disponible que sur la beta11. Voici une correction :

Veuillez reconstruire votre site pour récupérer le bon commit du plugin, et faites-nous savoir si vous voyez à nouveau cette erreur.

4 « J'aime »

Ce sujet a été automatiquement fermé après 16 heures. Les nouvelles réponses ne sont plus autorisées.