Get oops 500 error when installing question answer plugin

Hi, I have got the same issue when installing Pavilion QA plugin and report it in Oops after updating to discouse 2.9 due to Discourse QA plugin - support - Discourse Meta
I tried installing the discourse’s QA plugin in tests-passed (2.9.0.beta6) today but still got the same issue.
If disabling the QA plugin, everything is fine.
I also found a similar error message from 500 error when saving category security settings - bug - Discourse Meta. Maybe they are relevant?

Error message from shared/standalone/log/rails/production.log

NoMethodError (undefined method `>=' for nil:NilClass)
(eval):78:in `_fast_attributes'
app/controllers/application_controller.rb:639:in `preload_current_user_data'
app/controllers/application_controller.rb:439:in `preload_json'
app/controllers/application_controller.rb:415:in `block in with_resolved_locale'
app/controllers/application_controller.rb:415: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:368: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:202:in `call'

and some screenshot of the webpage

I use the following template:

- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
- "templates/web.socketed.template.yml"
- "templates/cloudflare.template.yml"

and install the plugins

- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-knowledge-explorer.git
- git clone https://github.com/discourse/discourse-data-explorer.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-rss-polling.git
- git clone https://github.com/discourse/discourse-feature-voting.git
- git clone https://github.com/discourse/discourse-math.git
- git clone https://github.com/discourse/discourse-checklist.git
- git clone https://github.com/discourse/discourse-question-answer.git

Update backtrace:

plugins/discourse-feature-voting/plugin.rb:162:in `reached_voting_limit?'
plugins/discourse-feature-voting/plugin.rb:175:in `votes_exceeded'
(eval):78:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
activesupport (7.0.3) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (7.0.3) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (7.0.3) lib/active_support/core_ext/object/json.rb:42:in `to_json'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in `to_json'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapter.rb:25:in `dump'
multi_json (1.15.0) lib/multi_json.rb:139:in `dump'
app/controllers/application_controller.rb:639:in `preload_current_user_data'
app/controllers/application_controller.rb:439:in `preload_json'
activesupport (7.0.3) lib/active_support/callbacks.rb:400:in `block in make_lambda'
activesupport (7.0.3) lib/active_support/callbacks.rb:199:in `block (2 levels) in halting'
actionpack (7.0.3) lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in <module:Callbacks>'
activesupport (7.0.3) lib/active_support/callbacks.rb:200:in `block in halting'
activesupport (7.0.3) lib/active_support/callbacks.rb:595:in `block in invoke_before'
activesupport (7.0.3) lib/active_support/callbacks.rb:595:in `each'
activesupport (7.0.3) lib/active_support/callbacks.rb:595:in `invoke_before'
activesupport (7.0.3) lib/active_support/callbacks.rb:116:in `block in run_callbacks'
app/controllers/application_controller.rb:415:in `block in with_resolved_locale'
i18n (1.10.0) lib/i18n.rb:328:in `with_locale'
app/controllers/application_controller.rb:415:in `with_resolved_locale'
activesupport (7.0.3) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.3) lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack (7.0.3) lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport (7.0.3) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.3) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.3) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.0.3) lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.0.3) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (7.0.3) lib/abstract_controller/base.rb:151:in `process'
actionview (7.0.3) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (3.0.0) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
actionpack (7.0.3) lib/action_controller/metal.rb:188:in `dispatch'
actionpack (7.0.3) lib/action_controller/metal.rb:251:in `dispatch'
actionpack (7.0.3) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.0.3) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.0.3) lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'
actionpack (7.0.3) lib/action_dispatch/routing/mapper.rb:48:in `serve'
actionpack (7.0.3) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (7.0.3) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (7.0.3) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.0.3) lib/action_dispatch/routing/route_set.rb:852:in `call'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
rack (2.2.3.1) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.3.1) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.3.1) lib/rack/head.rb:12:in `call'
actionpack (7.0.3) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:368:in `call'
rack (2.2.3.1) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.3.1) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/cookies.rb:697:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (7.0.3) lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack (7.0.3) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/show_exceptions.rb:26:in `call'
logster (2.11.2) lib/logster/middleware/reporter.rb:43:in `call'
railties (7.0.3) lib/rails/rack/logger.rb:40:in `call_app'
railties (7.0.3) lib/rails/rack/logger.rb:27:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/request_id.rb:26:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
rack (2.2.3.1) lib/rack/method_override.rb:24:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.3.1) lib/rack/sendfile.rb:110:in `call'
actionpack (7.0.3) lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
rack-mini-profiler (3.0.0) lib/mini_profiler/profiler.rb:249:in `call'
message_bus (4.2.0) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:202:in `call'
railties (7.0.3) lib/rails/engine.rb:530:in `call'
railties (7.0.3) lib/rails/railtie.rb:226:in `public_send'
railties (7.0.3) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.3.1) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.3.1) lib/rack/urlmap.rb:58:in `each'
rack (2.2.3.1) 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/2.7.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/2.7.0/bin/unicorn:25:in `<main>'

It shows some related to voting. Maybe are there some conflict between voting and question-answer?

1 Like

Hi, I also try a little bit on this issue.
In 2.9.0 beta 7, the issue still happens.
Because the backtrace contains something related “voting”, I guess there are some conflict between them.
I delete the voting plugin (only install q/a plugin) and it works!
I hope this can help figuring out the issue.

Sorry @yhmtsai, I didn’t see your update about the voting conflict. I have both Voting and Q&A installed on my test site, and they appear to be quite happy with each other? I’m going to spin up a new test site with just those two plugins and see if that shines any light on what may have happened.

Can you think of any other details that may be relevant?

1 Like

Hi, thanks for replying.
I re-enable the voting plugin and it works again. :face_with_raised_eyebrow:
I also tried installing the voting first and then qa, but it still works.
I would guess that it may something from the old qa and kept by voting leads the error even when deleting qa plugin. After deleting the voting to clean the data, the new qa and voting work together again.
However, I am not familar with those plugin interaction, so just guessing…

1 Like

I hit a similar issue myself recently when I rebuilt a new test site, and the problem was accidentally using the old discourse-feature-voting git for the voting plugin, rather than the current (at the time) discourse-voting one, which caused things to be loaded in an unintended order. :slight_smile:

Both of the voting plugins have been renamed recently to discourse-topic-voting and discourse-post-voting, so if you’re still having problems you could remove discourse-feature-voting from your app.yml and use the updated ones and I believe that should solve the issue. :+1:

1 Like

It will be helpful if discourse can throw some warning/reminder about updating the url.
I am not sure whether it worths or not because I assume changing the name should seldom happen.