Feedback on the new Review Queue

A suggestion for the review system: when approving a post that unsilences a user, could you add a User Note for the event? Something along the lines of '@username unsilenced this account' would be very useful. Right now we only see half the story in the notes.

3 Likes

Better to just delete those altogether, that’s what I do. It is usually in error anyway and I don’t like noisy notes that don’t add signal.

2 Likes

From the review queue, for the ‘Queued Post’ type, if I try to delete a user that has quite a lot of posts I get a 502 timeout.

I’m not sure what the upper limit is, but from testing today the lowest I tried that wouldn’t work was an account with 288 posts.

E.g. In the scenario that a post has been flagged (type: Queued Post) due to containing a word on the Watched Words -> Require Approval list.

Right now the options available are:
Approve Post | Reject Post | Delete User | Edit

I believe adding silence and suspend options to these queued posts types could be quite helpful. E.g. Reject post + silence or suspend. This would give admins the choice between silencing/suspending a user or erasing them from history directly from the review queue.

Also, if deleting users that have over x amount of posts from the review queue isn’t viable due to 502 errors, having suspend and silence as alternative options would be really great.

2 Likes

Some more info:

When opening ‘Grouped by Topic’ from the review queue, I get this error:

Server Error
while trying to load /review/topics
Error code: 500 Internal Server Error

Note that there are ~30k items in the review queue, many of the older items were added by Akismet before I uninstalled it.

Scroll/Pagination issue (probably should have posted it here instead): Review Queue Pagination/Infinite Scrolling after Taking an Action

Regarding the (type: Queued Post) items and getting a 502 timeout when using the delete user option. I can confirm getting the error with an account with 166 posts.

Ideas:

  1. Would be a useful time saver to have a direct link to the admin page of the user from the review queue somewhere.

  2. I think it is currently not possible to opt out of the ‘x items need to be reviewed’ daily reminder email. It’d be useful to be able to opt-out.

2 Likes

Can you review your /logs and let us know what the error is?

3 Likes

Ok, I think this is it:

ActiveRecord::SubclassNotFound (The single-table inheritance mechanism failed to locate the subclass: ‘ReviewableAkismetPost’. This error is raised because the column ‘type’ is reserved for storing the class in case of inheritance. Please rename this column if you didn’t intend it to be used for storing the inheritance class or overwrite Reviewable.inheritance_column to use another column for that information.)
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3/lib/active_record/inheritance.rb:234:in `rescue in find_sti_class’

2 Likes

Can you confirm if your akismet plugin is the latest version - and if not, update it?

4 Likes

Maybe old items added by other review types can’t be read if the reviewable definition disappears (such as via a plugin uninstall). Looks like the errors started happening after uninstall:

4 Likes

I can confirm that Akismet is currently uninstalled, I removed it quite a while ago.

1 Like

Oh that is interesting, like @featheredtoast suspects. @Roman_Rizzi how do you think we should handle this if records are around but the plugin is removed?

4 Likes

I think it’s possible to determine which reviewable types must be filtered out by doing something like this:

class Reviewable < ActiveRecord::Base
  def self.exclude_types
     db_types = Reviewable.distinct.pluck(:type)

     @exclude_types ||= db_types - Reviewable.types
  end
  
...
end

Then we can use those types to apply a default scope. We’ll probably have to add a type index to the table.

5 Likes

@Roman_Rizzi can you take that when you have some time?

5 Likes

Getting a lot of invisible images in the review queue. Some work just fine, it’s about 50/50. Some show something like this on inspection and nothing displays:

src="/images/transparent.png" alt="" data-orig-src="upload://fwf1zrfwefWEqGer2W3xz1ed.jpeg"

Happens for instances both using a cdn + s3 and also just local storage.

1 Like

Yes, the issue only affects queued posts.

I have a PR with a fix awaiting review, so images should appear again soon.

I’ll let you know after we merged it.

4 Likes

The fix is now available on tests-passed and stable.

However, there’s still another issue where rejected queued post images are still not showing in the review queue. The system removes them automatically since there’s no need to keep them. We plan on replacing them with a text to explain this.

8 Likes

Thanks a lot for fixing that @Roman_Rizzi!

Something else that might be a bug on tests-passed: Scenario: Accepting a post in the review queue, then going back and rejecting it. The post will remain listed and visible on the site.

Edit, the bottom 2 paragraphs of this comment also explains another possible issue with some review queue related options and site-wide rate limits: Discourse-no-bump: prevent users from bumping topics

1 Like

Something else I’ve noticed regarding the ‘auto handle queued age’. I have many old items in some review queues that are significantly older than the ‘auto handle queued age’ days setting (using default) that don’t seem to be getting automatically handled. It doesn’t seem like any of the items are being automatically handled. Not sure if I’m missing something.

Also, when sorting the review queue by 'Created At (reverse) I’m getting a 500 error. All the other ‘order by’ filters work fine.

1 Like

Can you check your logs and let us know what the error is when you change the sort order?

3 Likes

Thanks @eviltrout, yeah sure. This is the error I see:

ActiveRecord::SubclassNotFound (The single-table inheritance mechanism failed to locate the subclass: ‘ReviewableAkismetPost’. This error is raised because the column ‘type’ is reserved for storing the class in case of inheritance. Please rename this column if you didn’t intend it to be used for storing the inheritance class or overwrite Reviewable.inheritance_column to use another column for that information.)
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/inheritance.rb:234:in `rescue in find_sti_class’

Note that the Akismet plugin has been removed quite some time ago on this particular forum.

2 Likes

Ah, so it’s still related to that. @Roman_Rizzi it looks like there might still be a bug here related to having those old reviewable types in the database?

4 Likes