Slack command integration broken in official discourse slack plugin

I just updated the slack plugin on our instance to the latest version (compare versions), and it appears the /discourse slack commands are now broken:

Here’s what I see in the logs on our instance:

Started POST "/slack/command" for at 2017-04-08 15:07:59 +0000
Processing by DiscourseSlack::SlackController#command as HTML
  Parameters: {"token"=>"REDACTED", "team_id"=>"REDACTED", "team_domain"=>"mydomain", "channel_id"=>"REDACTED", "channel_name"=>"discourse-test", "user_id"=>"REDACTED", "user_name"=>"someuser", "command"=>"/discourse", "text"=>"help", "response_url"=>""}
Redirected to
Completed 500 Internal Server Error in 5ms (ActiveRecord: 0.0ms)
ActionController::UrlGenerationError (No route matches {:action=>"enter", :controller=>"static"})
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack- `generate'

/cc @vinothkannans @tgxworld

1 Like

Is your forum a private forum?

yes, it is a private forum

@tgxworld We should skip before_filter redirect_to_login_if_required here?


Yup I think I removed one of the monkey patches. For the /command path, we need to skip everything because the only authentication we need to do is to check if the Slack token is valid.


my understanding of @vinothkannans suggestion appears to work in a quick test. I’ll let you do what makes the most sense rather than PR it, though.


This is exactly what I’ve done in my Telegram plugin (which is very similar to slack in the way the webhooks work). If there’s a better solution I’d be interested to know!


Thanks for reporting @mcwumbly. I’ve fixed it in

and added a test case for it. I’ve been involved in refactoring of the plugin but without existing test cases, there is a higher chance of me breaking stuff without knowing. Feel free to report any more bugs that you come across and I’ll get them sorted.