The persistence of posts hidden by flags are a bane to our community

Thanks as always for your helpful reply @Canapin . So I tweaked it a bit more without !important , and I also removed the capability of viewing post revisions for normal viewers:

body:not(.staff) {
    .post-hidden  {
        display: none;
    .post-info.edits  {
        display: none;

You can do that by toggling off the edit history visible to public setting :slight_smile:



:man_facepalming: Oh, thanks! I was searching for revision in the settings.

1 Like

Turns out this does create some side effects:

  • When the most recent post in a topic is hidden and a user clicks on the most recent post indicator in the topics list it will try to go to the hidden post but then “bounce” randomly way back higher in the thread.
  • The owner of the hidden post won’t have a chance to edit it because the controls for the post are also hidden.

So this appears to be a better solution:

body:not(.staff) {
    .post-hidden a.expand-hidden  {
        display: none;

I have to second that this should be a standard feature in Discourse.

For the last several years, we’ve had a moderation policy to delete flagged posts and replies in large part because if people can see the flagged posts in any form, they seem to read them and continue to take issue with the poster.


How would you feel about having these auto-hidden-due-to-threshold posts hidden to non-moderators and non-flaggers? (leaving it visible as stubs to people who originally flagged and mods)

Keep in mind that this is meant to be a temporary state, people can recover from auto hide by correcting a post.


That sounds good to me, thanks Sam for looking into this.

I was wondering about the web crawlers, will they see a hidden post with just a “hidden” message the way a human would with a normal browser, or would they also see and index the potentially inappropriate content that is hidden with CSS?

Another related issue is the post revision history, I know it could be disabled for normal users, but some users do like and use the feature for normal edits of inoffensive posts. A user actually suggested that it would be good to hide the revision history button on posts that have a flag hit on them. Otherwise users can (and will) go back and see the original offensive post.

The proposal here would be to completely hide this from anon, so they would not see it and you would not need to CSS hide it.

This is a bit of a detour, I recommend you open a new topic to discuss, but magic and special cases like this always come at some sort of cost.

1 Like

We’ve been discussing some of the details about a possible change here’s what we’re currently planning to do:

  1. Continue to show “This post was flagged by the community and is temporarily hidden” to everyone while a post is in this state.
  2. Only provide the “View ignored content” option to the following users:
    • Author of the flagged post
    • Staff (admins, moderators, category moderators)
    • TL4 users

Should others who flagged the post be able to see the original content when it’s in this state? We originally were thinking “yes”, but have left that out above as we don’t see a strong reason to allow them to continue to see it once it’s been hidden.

Let us know if you have any feedback on these details.


Thanks a lot @mcwumbly for looking into these improvements. Here’s my inflation-adjusted $0.04 –

Yep, seems necessary to keep a placeholder so that email notification links to the hidden post don’t break.

  • And what about if the hidden post is the last one in a topic, would it still bump the topic and appear as the latest post N hours/minutes ago in “Latest” topics?
  • Would it be possible to also hide or replace with “System” the hidden post owner’s avatar and username? I had a hand-crafted community moderation system very similar to this on the previous forum platform before I migrated to Discourse, and hints about who got hit with the mod hammer or who flagged their posts always led to lots of controversial discussion in the thread and never turned out well. In my experience it’s best to quietly eliminate the trouble and move on.

Good. Regarding TL4 users I still wouldn’t want them to see the hidden post content, so if possible it would be nice to make that optional.

I would also say no. I think it has to do with a fundamental psychological tendency toward being fascinated with conflict, and users will often go to great lengths to perpetuate an argument.


As of this change we have changed the behaviour as described by @mcwumbly above, and regular users (including the flaggers themselves) will no longer be able to expand the ignored content. This is the new baseline behaviour, and doesn’t require any additional setup.

We didn’t include the ability to configure whether TL4 users should be able to as part of this change to keep the scope manageable. By default TL4 users can still expand the hidden content.


Is there any plan to make this configurable? In our forum the previous way was working just fine and multiple users have already complained about not being able to read flagged messages. I’m not sure I understand the point of this feature anyway. Right now your whole screen can be full of “This message was flagged” messages. If user is not able to expand the message, why even show the “This message was flagged” message?

Either way, everyone being able to read flagged messages is somewhat wanted feature in our forum since we have quite high standards for messages so a flagged message usually don’t mean that it’s complete spam, but just that it doesn’t bring enough value to the thread. We also have active thread where people discuss about why their posts were or weren’t flagged and so on. Our forum is hosted by Discourse and we’re on enterprise plan in case it matters.


So, it turns out that this change is highly problematic for a community I’m in. In terms of our policy and prior commitments of the organization to its members, well, it’s just a violation of previous promises.

It’s a private organization’s Discourse; no public sign-ups are allowed. We have no issues with spammers, and we have an active Moderation team with formal rules. Our internal agreements at the time of the move to Discourse were based on the fact that flags and Moderators may cause posts to be hidden, but that no posts are deleted or made completely inaccessible (which some viewed as censorship.) Our Discourse is set that hidden posts never get auto-deleted.

It’s somewhat unavoidable that we roll back if there’s no option to control this unexpected change in behavior.

Is there any chance of this becoming something that can be toggled in a setting? Otherwise, we’re going to have to look at manually editing the code we run (self-hosted), something which we’d much rather not start doing, but which is much better than moving away from Discourse or stopping all updates.


That would be a useful feature for private communities actually. In the latest version, a bug fix had happened that caused the flags to behave differently. So, a setting to toggle flags hide posts would be useful.

We’re fine with community flags hiding posts, mind you - as long as the rest of the community still has the option to click in to see the post.

That used to be the case actually before a bug fix changed it so that flags are always hidden. (The behavior was unintended), but it’s agreeable to put an option for showing posts on lower trust levels.


This is very similar to the community I run, in particular, when a… robust… conversation is taking place, any hidden posts (usually off topic) that disappear bring on calls of censorship.

I do note that there is a control to adjust “The likelihood that a flagged post will be hidden”. Called " hide post sensitivity" if anyone is wondering. I’ve adjusted this to see if it reduces the complaints.

A trust level based view hidden posts setting would be greatly appreciated.


I think an item should be added in sitesettings, which is the group that allows viewing of flagged posts.

But I don’t have any experience submitting PR to discourse…


In general, I still disagree with this change in the first place. Even as a normal user, I want a “show ignored content” button back.

1 Like

Thanks to @nat’s guidance, I submitted a PR to core. Now you can customize who can see hidden posts. :partying_face: