Discourse Assign - bug taking site down

I recently changed the site setting for the group(s) that are able to use Discourse Assign. Something went awfully wrong when I hit the update button, it took the whole site down.

I have since disabled Discourse Assign, which has got the site back up, but I am unable to get Discourse Assign working again. When I re-enable it, the site is taken down, and cannot change the site settings for the Discourse Assign plugin.

I am looking at the error logs, there are two:

ActiveRecord::StatementInvalid (PG::InvalidTextRepresentation: ERROR:  invalid input syntax for integer: "patently-staff"
LINE 1: ...RE "group_users"."user_id" = 1 AND (groups.id in ('patently-...
: SELECT  1 AS one FROM "groups" INNER JOIN "group_users" ON "groups"."id" = "group_users"."group_id" WHERE "group_users"."user_id" = 1 AND (groups.id in ('patently-staff')) LIMIT 1)
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/patches/db/pg.rb:69:in `async_exec_params'


Failed to handle exception in exception app middleware : PG::InvalidTextRepresentation: ERROR:  invalid input syntax for integer: "patently-staff"
LINE 1: ...RE "group_users"."user_id" = 1 AND (groups.id in ('patently-...
: SELECT  1 AS one FROM "groups" INNER JOIN "group_users" ON "groups"."id" = "group_users"."group_id" WHERE "group_users"."user_id" = 1 AND (groups.id in ('patently-staff')) LIMIT 1

Is the discourse-assign plugin up to date in your instance? Or maybe you forked the plugin a while ago? There was a change in the discourse-assign plugin in July that seems relevant to the errors you’re seeing.


Hi Penar, I’m pretty sure it was up to date, I regularly update everything include plugins.

I think I’m going to have to restore, last backup was before I changed that site setting.

Hi @jerry0,

According to the logs, it looks like the plugin is up to date. Which Discourse version are you running?


latest, currently 2.4.0.beta4

Hmm, I see. Did you change the setting before or after updating to beta4?

Looks like somehow our automatic migration failed to update you setting, I’m going to investigate why this happened. Did you try restarting the server before enabling the plugin just in case the old value could have been cached? Let me know if this doesn’t work and I’ll provide you a ruby script to manually fix the issue.

1 Like

Thanks @Roman_Rizzi

It happened before I updated. Something weird happened as I added the new setting, I think I pressed the green tick before “adding” the new groupname.

I am not sure how to do that (btw I may have mispoken when saying “disabled/enabled” in my OP - what I meant was that I commented out the git clone url in the app.yml file to add the plugin). When I add the plugin in the yml file it crashes the site straight away (and it was previously enabled) so I can’t go in and then set it to disabled… unless I have misunderstood you?

May well be needed, would be gratefully received.

If you don’t mind, I’d like to validate one more thing before manually modifying the setting.

Can you execute this code inside a rails console and let me know the output?

  SELECT site_settings.value FROM site_settings WHERE site_settings.name = 'assign_allowed_on_groups'

This should tell us if we failed to migrate the setting’s value.

To access a console:

  • cd into your Discourse folder
  • Enter the container running ./launcher enter app
  • Open a Rails console running rails c

response is

=> [“patently-staff”]

1 Like

Thanks, Jerry.

There’s definitely something going on here. I’ll have a look and see why it’s happening.

Here’s the script:

group_id = Group.where(name: 'patently-staff').pluck(:id).join('|')

DB.exec("UPDATE site_settings SET value='#{group_id}' WHERE site_settings.name = 'assign_allowed_on_groups'")

After running it, you should be able to re-enable the plugin.


Perfect, that worked :grin: Thank you @Roman_Rizzi. Let me know if there is anything I can provide to assist further.

1 Like

Hello Roman,
we’ve got a simmilar problem with the discourse-assign plugin on our site after upgrading to 2.4.0beta4.

The Problem only appears on users logging in via ldap. (we use “https://github.com/jonmbake/discourse-ldap-auth” for the ldap connection)

the response to the DB.query is:
=> [“staff”]
but " Group.where(name: ‘staff’).pluck(:id).join(’|’)" returns “”.

Btw: On Version “2.4.0.beta1 +203” the responses are similar, but login by ldap is possible. (ldap version 0.4.0, assign version 0.1)

Any help welcome,

Hello @diwr,

According to that query, you don’t have a group called staff. Maybe you renamed it to something else?

You can check that by doing: Group.where(id: 3).pluck(:name)

I think that the migration won’t work if the staff group was renamed. I’ll have a look at this today.


Thank you @Roman_Rizzi

it seems it was renamed to “team”
What to do now?

You can run the script using “team” as the group name.


Thx allot.
I had to “./launcher rebuild app” after setting the value, but then it worked.