Why are posts withdrawn instead of being deleted immediately?

Why are posts that users try to delete considered as “withdrawn” for a period of time as opposed to being immediately deleted. I know that you can change this period of time to zero but was just wondering about the reasoning here. I see that it says “unless flagged” so I am guessing that has something to do with it, but don’t fully understand.

I think it’s mostly there to prevent gaslighting. If you claim to have “not said that,” and there’s a withdrawn post in the timeline, then you just might be lying.

As described in this old announcement:


Thanks Michael. Can you see withdrawn posts anywhere before they are deleted? Can users see them or do they just need to flag a post based on what they remember seeing?

That must depend on some site settings.

There are several Discourse instances out there where I can see withdrawn posts if I click on them, and I’m certainly not staff. One of them I’m not even a member…

1 Like

There’s nothing special about the visibility of withdrawn posts as far as I know, withdrawing is a normal edit.

Whether edits are publicly visible can be configured via the site setting edit history visible to public :slight_smile:


For what it’s worth, IMHO, this could likely be a Staff and OP only feature few non-Staff would even notice missing. Anybody think of a reason for other than those two?

I can’t find detailed discussion about this now, but IIRC, the main rationale for this is to leverage the community for front line moderation support. In particular, the team was concerned about two types of destructive behaviors, mentioned in the linked posts:


The first, in particular, can be hard for staff to track in a busy site with many users. Allowing normal users to see withdrawn posts can get extra eyes on potential trolls and bullies, and a few flags on “NOT OK” content can alert staff much more quickly than if they try to review all withdrawn posts and other activity.

1 Like

A member mass deleting their posts is a different issue. In terms of

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

I know of no times any such post has been flagged. And as long as Moderators could see post history a topic could be flagged with a type of “hey, so+so called me a so+so then deleted it!” or whatever.

These timed deletes have gotten flagged for some forums?

A flag or a warning to the mods might be a good idea. Perhaps a setting for “flag posts deleted/day”.

Does not matter, user self-deletes are rate limited per day.


I’d like to be able to hide the “post will be withdrawn in 24 hours unless” message completely for non-staff members. I actually like the rationale for this feature a lot (the earlier message in this topic explain it well) but it’s not right for my community right now.

Is there a way to do this? If not, how difficult would it be to get a class added to posts that were deleted?

I found my old code, not sure if it works today (didn’t check).

import { withPluginApi } from 'discourse/lib/plugin-api';
import RawHtml from 'discourse/widgets/raw-html'; 
function attachComm(api) {
   api.addPostClassesCallback((attrs) => {
       return attrs.user_deleted ? ["remote"] : ["rated"]; 

export default {
  name: 'alert',
  initialize(container) {
      withPluginApi('0.1', attachComm);

It was part of the plugin. Perhaps something similar can be done by a component.


Thank you very much Evgeny! I’ll play with it… looks like just what I need. Much appreciated.

Update it works great. I already have a custom plugin (that I developed) for my Discourse install, so it was easy to add the appropriate snippet to the already-existing code. Quick ‘n’ easy, my favorite kind of coding challenges :+1:t2:

1 Like