Confusing UX for replies to PMs I didn't technically send

This is a great example where I find that Discourse’s UI/UX tries to be too smart and ends up being confusing, to say the least:

I’m owner & admin of the forum, and occasionally I receive such messages. It’s clear that Discourse decided that a user account should be put on hold to prevent spam, which is perfectly fine.

What I really don’t understand is the UI:

  • Why does the “Account temporary on hold” message appears first, i.e. preceds (in time) the user’s message?
  • Why is the “Account temporary on hold” message attributed to myself (Franz)?
  • Why can I edit it? Reply to it?
  • Did the user receive it too?
  • What happens if I reply? Does the user get my reply?

The user’s message ends in the approval queue beforehand. It is not published until a staff member checks it.

Because you are the contact admin.
In this setting

you will find your username instead of @system

You can edit this message searching for system_messages.silenced_by_staff.text_body_template navigating to the /admin/customize/site_texts directory
Your user receive that message and if you reply he can read your answer.
BTW, if your staff users review and approve the post, the user will receive another automatic message informing him that his account is active again.


I’m sorry that this is unrelated to your question @dictoon , but what is this beautiful dark theme you’re using? Would you mind sharing it?

Hi Daniela, thanks for your answer.

Sorry but this does not make any sense to me. Is my screenshot one of the approval queue, ordered from most recent to least recent? If so, why am I seeing the “Account temporarily on hold” message at all since it’s not one to be approved or disapproved, but one that should be sent to the user (I presume)? The whole screen makes very little sense to me.

Got it, finally something that makes sense :slight_smile:

I mean, I can edit the message right from this page!

Does it mean I’m updating the “source” approval message? Or only the message that was sent just to this user?

To be honest, the whole screen would make a ton more sense with one simple change: do not show the “Account temporarily on hold” message. Just show the user’s message, and of course keep the option that lets an admin respond to the user away.

You sent it, technically. It wasn’t sent to you, but from you to that user. It’s the same as you sending a PM to that user.

If you don’t want that, as indicated, change the site setting Daniela showed you.


It’s a custom theme that I developed years ago when Discourse was still quite young and didn’t have any official dark theme.

I have no idea how to export it from Discourse so here it is:

I get that, but then why does it appear first, at the top of the page? It doesn’t follow the usual conversation order and is rather confusing.

Can you send a screenshot? I am not following what you are describing. It would be in standard PM order on your / their messages tab in the user profile.

My initial post contains a screenshot of the page. I’m not sure what else I can provide, this is all there is.

I think we are confused – you showed a screenshot of the PM itself. The PM is from you, so the first post is yours. There is nothing at all strange about that; you sent a PM to the user, and that’s what a PM to a user would look like… any PM.

I assume you are referring to the PM list page on your user profile, under the messages tab.

1 Like

I think I’m a lot more confused than you :slight_smile:

I went to the forum, noticed I had a notification, clicked on the notification and arrived on this page. I have no idea if it’s a PM or not, I pretty much never used PM on Discourse. I’m just assuming that as an admin, this is a notification that a user’s message requires approval before appearing on the forum. Really, basic dumb user point of view.

Now I recall that I got even more confused a few days ago when I received the following notification which follows the exact same format and suffers, in my opinion, from the exact same UI flaw:

Me, user of the month?! How awesome! I mean, I got that message in my PM box so it must be legit! Sure, it’s sent by myself, but that’s because the system is impersonating an admin (me in this case)…

Wait, why is someone responding to my award message??

To be extra clear, this is the link I’m clicking on:


and here is the entirety of the page that the above links to:

You got a notification because someone replied to a PM you sent.

The confusion stems from “I didn’t really send this” but it was sent on your behalf. Replies will work like any other replies to any other PMs you send.


I agree that it’s exactly how it looks like, but I did not send any PM to start with! This is the whole point.


If I was qualified to do a root-cause-analysis on this mistake, I’d probably start with some things like this:

  • The immediate problem is ambiguity around the second-person-pronoun “you” in the message “Congratulations, you’ve earned the New User of the Month award”. The intended reader, @Mango3, and the admin, @franz, both thought they had won the award.
  • The reason @dictoon didn’t know who the message was addressed to is that they didn’t notice anything in the UI clearly saying “this message is addressed to @Mango3, not you”.
  • The reason Discourse doesn’t present a recipient for it’s PM’s is that PM’s don’t really have a recipient; instead, PM topics have a list of “participants”.
  • The reason Discourse doesn’t have a concept of “who the PM is addressed to” like email does is that Discourse is designed for group discussions, and one-on-one is just treated as a group with two people.

If I may chime in here,

Regarding the account temporarily on hold, logic would state that an admin account would never be put on hold. It’s the admin account, it has to be able to do everything at all times, no exceptions.

Regarding the user of the of the month, that’s a badge that’s granted. Those are accompanied by a notification in the notifications panel whenever they are granted. If you don’t have a notification saying “Earned ‘(insert badge title here)’” then you havent been awarded the badge. You can also confirm whether or not you earned a specific badge by visiting the badges page and clicking on the badge in question. Here we can draw conclusions by deductive reasoning.

@dictoon if you are trying to avoid confusion in the future, I would suggest changing the setting that was outlined by @dax


Again, that’s the entire point of this conversation, it’s not an admin account that’s put on hold, it’s the account of user M, but the user interface makes it look like it is my account (franz) that’s put on hold!

Either I am deeply off the mark here, or there’s something deeply problematic in the UI.

@notriddle You’re analysis is very interesting and mostly correct. It would say the very most troubling aspect of this page is the ordering of the posts:

  1. The first post (at the top) should be the user’s message requiring approval.
  2. The second post (below) should be the admin’s or system’s message telling the user that his message requires approval.
  3. Subsequent posts below that could be the conversation between an admin and the user about why his post requires approval (if that’s even a feature).
1 Like

Feels like it’d be fairly simple to detect if the previous post in the PM was automated and changing the notification text to X replied to your automated message: “Account temporarily on hold” in that case.

Also, is it not scrolling to and highlighting the user’s reply, rather than your own message? It does that for ‘regular’ pms, and should definitely be doing it in this case as well.

Ok, I start to understand the crux of the problem here: Discourse is reusing the PM infrastructure for notifications. Why not, but then several things need to be improved to start making sense:

  • The PM should use different text when it’s addressed to the user who’s account is on hold (“Your account has been temporarily suspended…”) or when it’s adressed to the admin (“Bob’s account has been temporarily suspended…”).
  • The message that caused the account to be suspended should be quoted in the first message, instead of appearing below it which currently makes it look like it was posted after the notification message (since that’s how messages are ordered everywhere in Discourse).
  • Highlighting is a (welcome) bonus but it certainly shouldn’t be used to attempt to fix deeper design issues.
1 Like

You can’t do that, it’s literally the same PM. Messages in Discourse don’t work like email, instead, they’re very closely related to normal topics, with per-topic permissions added on top.

What you see below isn’t the message that caused the hold – it’s a reply the user sent to the message “you” sent him.

The core problem is what @codinghorror summarized below:

If you had manually sent the first message to a user, you wouldn’t find this UI confusing: You just see the message you wrote on top, with replies coming in below, just as if you had written a public topic and the user replied to it.
The only difference here is that you didn’t send the message. Instead, you told Discourse that when it is sending messages to users automatically, you want it to pretend that you sent them :slight_smile: