Question Answer Plugin

Great plugin!

Just an FYI, I think this broke my site for Level 0 users. They couldn’t read any post.

I have disabled this plugin for now and things look better for the affected users.


Thanks for the heads up. This bug was fixed around the same time you posted. If you update the plugin it will work as expected for level 0.


I would like to see some examples of people using this awesome plugin. I tried to start from the sandbox but it looks like dead (brings me to the 404 page).
Also, if possible and someone is already using this plugin in production, could you please share a link so I could take a look? I would help me alot :slight_smile:
@angus, also is this plugin supports RTL forums?
Thank you all :smiley:

1 Like

Hey! The sandbox has changed location. Here’s an example topic:


Thank you. I have tried to plugin. It looks like it does not support RTL. Can you confirm it please?

Print screen:

Is it possible to add support to RTL?
Also, how can I contribute translation to Hebrew?

hi there,
understanding the plugin correctly is works only on per topic base.
Any chance to create an overlaying TOC, allowing the admin to sort question in thematic areas?
At the moment, I find only DiscoTOC - automatic table of contents what deals only with the very first post in a topic.

I would love to see a super sleek FAQ TOC (question only) sorted in thematic areas to gain quickly an understanding of the entire thing.
Roughly done as on e.g. Org Application | Google Summer of Code Guides. It shows me first the question being answered here from where I can jump off to the respective answer.

Two things what could be improved:

  1. after expanding you should be able to collapse
    What has cities, but no houses; forests, but no trees; and water, but no fish? - Sandbox - Pavilion
  2. You should be able to comment on the question, to e.g. ask for more details allowing to answer the question properly

is this awesome plugin is still in development? It looks like it leaks some basic feature in order to be called a “QA Plugin” (for example the down vote). Also, it looks like there was not any update on the previous questions.
Thank you.

1 Like

Unfortunately it looks like they curently do not continue developing this plugin. I tried to use it in my community but I had to remove it due to the lack of basic features.
That’s really unfortunate because I had high hopes for this plugin. It has alot of potential. I hope they will continue developing it in the future.

1 Like

It is very unfortunate to hear. Are there any alternatives that I could use in order to set a Discourse QA community? I tried to search for an alternative but could not find any.

As far as I know there are no alternatives. This plugin is the best as you can get, unfortunately. The Pavilion team did a good initial job on this plugin and I believe they should continue developing it but they have other jobs to do. So sadly, there is no way to get a fully featured QA plugin at the moment.

1 Like

It’s been updated in the past month. If it’s missing features that you want and you have a budget, I’m sure the good folks at Pavilion will be happy to help.

Discourse is rather explicitly not a Question-Answer platform. The founders already wrote one of those. :slight_smile:


@chilldark @verilog15 Hey guys,

Yes, we’re are continuing to develop and maintain this plugin, which is currently used in many Discourse instances.

@verilog15 I pushed an update to this plugin last month in response to your feature request (which you posted both here and on Not sure if you’ve seen that?

@chilldark If you’d like down voting added as a feature, please submit a feature request: Feature Request

@PackElend Apologies for not responding to your questions sooner. Both are good points. I’ll submit the first as a bug report on your behalf. If you’d like the second to happen, please submit it here: Feature Request


Hi @angus, Thank you for your reply. I see that there is already an open feature request that meets with feature we need. From previous posts here it looks like it is a wanted feature.
Is this feature WIP? Do you have an update on it?
Again, thank you for your help and fast reply.

@angus could you check if the wizard is down I get

when I click on “Request a Feature” on

When I click on your link I get

What about the TOC feature, would it be a Feature Request or shall I put is somewhere else?

Thanks for the report. I’ll take a look in the next 12 hrs.

@PackElend This is now fixed. Could you take another go at making a feature request? Thanks



what about the TOC, shall it be another FR?
I have read

yesterday, what shows the differences quite clearly
source: Wiki - OSMC Forums what is just an endless list
Wiki: Wiki - OSMC all well-sorted list

Hi guys :slight_smile:
Can someone point me to some Discourse communities which use this plugin in production?
I would like to see how they get around without some of the basic QA features (like down-vote and limit characters at comment).
Thank you :slight_smile:

1 Like

Hi guys, I tried to install the plugin on my local Discourse community and it fails:

$ bundle exec puma

Puma starting in single mode...
* Version 3.12.1 (ruby 2.6.2-p47), codename: Llamas in Pajamas
* Min threads: 0, max threads: 16
* Environment: development
Starting CSS change watcher
! Unable to load application: NoMethodError: undefined method `attributes' for TopicListItemSerializer:Class
Did you mean?  attr_writer
bundler: failed to load command: puma (/home/gandu/.rbenv/versions/2.6.2/bin/puma)
NoMethodError: undefined method `attributes' for TopicListItemSerializer:Class
Did you mean?  attr_writer
  /home/gandu/test_community/discourse/plugins/discourse-question-answer/lib/qa_topic_edits.rb:222:in `<class:TopicListItemSerializer>'
  /home/gandu/test_community/discourse/plugins/discourse-question-answer/lib/qa_topic_edits.rb:221:in `<main>'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/dependencies.rb:319:in `block in load'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/dependencies.rb:291:in `load_dependency'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/dependencies.rb:319:in `load'
  /home/gandu/test_community/discourse/plugins/discourse-question-answer/plugin.rb:84:in `block in activate!'
  /home/gandu/test_community/discourse/lib/plugin/instance.rb:329:in `block in notify_after_initialize'
  /home/gandu/test_community/discourse/lib/plugin/instance.rb:327:in `each'
  /home/gandu/test_community/discourse/lib/plugin/instance.rb:327:in `notify_after_initialize'
  /home/gandu/test_community/discourse/config/application.rb:296:in `each'
  /home/gandu/test_community/discourse/config/application.rb:296:in `block in <class:Application>'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/lazy_load_hooks.rb:69:in `block in execute_hook'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/lazy_load_hooks.rb:62:in `with_execution_control'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/lazy_load_hooks.rb:67:in `execute_hook'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/lazy_load_hooks.rb:52:in `block in run_load_hooks'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/lazy_load_hooks.rb:51:in `each'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/lazy_load_hooks.rb:51:in `run_load_hooks'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-6.0.0/lib/rails/application/finisher.rb:129:in `block in <module:Finisher>'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-6.0.0/lib/rails/initializable.rb:32:in `instance_exec'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-6.0.0/lib/rails/initializable.rb:32:in `run'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-6.0.0/lib/rails/initializable.rb:61:in `block in run_initializers'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:228:in `block in tsort_each'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:431:in `each_strongly_connected_component_from'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:349:in `block in each_strongly_connected_component'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:347:in `each'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:347:in `call'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:347:in `each_strongly_connected_component'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:226:in `tsort_each'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:205:in `tsort_each'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-6.0.0/lib/rails/initializable.rb:60:in `run_initializers'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-6.0.0/lib/rails/application.rb:363:in `initialize!'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb:190:in `public_send'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb:190:in `method_missing'
  /home/gandu/test_community/discourse/config/environment.rb:7:in `<top (required)>' `require' `block in <main>'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/rack-2.0.7/lib/rack/builder.rb:55:in `instance_eval'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/rack-2.0.7/lib/rack/builder.rb:55:in `initialize' `new' `<main>'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/rack-2.0.7/lib/rack/builder.rb:49:in `eval'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/rack-2.0.7/lib/rack/builder.rb:49:in `new_from_string'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/rack-2.0.7/lib/rack/builder.rb:40:in `parse_file'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/configuration.rb:320:in `load_rackup'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/configuration.rb:245:in `app'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/runner.rb:147:in `load_and_bind'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/single.rb:98:in `run'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/launcher.rb:186:in `run'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/cli.rb:80:in `run'
  /home/gandu/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/puma-3.12.1/bin/puma:10:in `<top (required)>'
  /home/gandu/.rbenv/versions/2.6.2/bin/puma:23:in `load'
  /home/gandu/.rbenv/versions/2.6.2/bin/puma:23:in `<top (required)>'

And it looks like it was already have being complained about before (link).
Does someone know how to fix it?

@angus marking this #plugin:broken-plugin for now pending an update.