The forum always sends emails when suspending and silencing users

AI-generated summary

The discussion addresses a bug where Discourse automatically sends emails when users are suspended or silenced, despite the UI suggesting emails are only sent if a message is manually entered. j127 reports that this behavior contradicts the interface and prevents them from silently moderating users to avoid reminding them the site exists. They request an option to disable these default emails.

awesomerobot identifies the change as intentional, linked to Digital Services Act (DSA) requirements for providing statements of reasons to moderated users. While Dylan_Michael questions if on-site notifications suffice under Article 17, awesomerobot advises keeping emails as the default for EU compliance, except for spam/bots. Ed_S clarifies that DSA requirements do not apply to spam or government demands.

j127 argues that on-site messaging should be sufficient notification and requests a stable API hook to suppress specific emails via plugins, noting that current workarounds involve manually canceling Sidekiq jobs. In response to the discussion, tgxworld has reverted the default setting to prevent automatic suspension/silencing emails while the team discusses the appropriate default behavior internally.

The UI makes it seem like it isn’t going to email a user when you suspend them unless you fill out this bottom section — it only says that it will show them text when they try to log in:

But when I was testing something with a test account I noticed that it did send an email notifying the user of the suspension. It also sent an email when I silenced the test user. It sends the emails immediately, so there isn’t even time to go into sidekiq to stop it.

I think it’s a bug:

A reason why I don’t want it to send emails to those people is because I don’t want to remind them that the site exists. (All suspensions are permanent unless they want to appeal them by email.)

Edit: After posting this, I saw that I got another email when I unsuspended the test account. I don’t think it should send an email for that either, unless an admin checks a box, because the user might not know that they were suspended or silenced by the system.

4 Likes

This sounds pretty bad. What’s the “Email Type” as seen in the Email Logs part of the admin interface?

appears to have been an intentional change here: UX: Always email suspended users and clarify expiry timezones - Pull Request #44812 - discourse/discourse - GitHub @tgxworld will know for sure, but I believe this is related to Digital Services Act requirements

Is it possible to change it so that it doesn’t send emails by default, but put a checkbox there saying “send the user an email”? The UI and the documentation in the forum currently say that suspensions and silencing won’t send emails unless the bottom textarea is filled out.

If it automatically sends emails, I won’t be able to use the UI to suspend or silence users but will have to log in over ssh to do it in the Rails console or find another method to do it that doesn’t send emails.

I never send emails for those kinds of moderation decisions, because it would be remind undesirable users that the forum exists, and I just want them to disappear. If they return to the forum, they will see the moderation reason, but most of them won’t return.

We don’t have temporary suspensions or silencing — it’s always permanent. I give the users several warnings to reform themselves, but if they can’t do that, then they get suspended and can appeal it by email.

A coding agent said that it could write a plug-in to suppress those emails, but that there’s no official hook to block those emails. An update to core in the future might break the plug-in.

If the reasons for not wanting to send those emails aren’t understandable, I could post example scenarios.

1 Like

Yes, it’s possible. We’re working through making it possible to use Discourse in a DSA complaint way so we will have more updates and the feedback helps.

Keep in mind though, that if your forum is operated from or has users in the EU, the Digital Services Act (Article 17) requires you to give suspended or silenced users a statement of reasons.

Since it’s hard to know where any given user is, I’d keep the email as the default and only skip it for spam/bot accounts, which the DSA exempts.

1 Like

I don’t see a requirement in article 17 for moderation reasons to be sent by email, if a user can see those posted at the site if they attempt to login when suspended or can still login when silenced wouldn’t that meet the requirement?

Article 17, the Digital Services Act (DSA)

1 Like

Thanks for the explanation. I hadn’t heard of the Digital Services Act.

I’m confused about the law. Gmail is a website; my forum is a website. Why would visiting gmail.com to view messages be considered “notification” but visiting the messaging system on my site to view notifications not be considered “notification”? It seems like that would give unfair preference to big tech companies. If I make them go to Google for notification in addition to notifying them on my website through my own messaging system, I would be giving them double-notification.

I always show a reason, so they will see it when they come to check what messages they have received on the forum. People can always appeal moderation decisions by emailing us. Real humans answer the emails, and the contact link is available in the dropdown menu.

I’d prefer to leave those emails off by default until they clarify the law. I don’t want anyone to ever receive emails when they are manually suspended, silenced, unsuspended, or unsilenced unless I fill out the email textarea.

If you aren’t able to modify Discourse to turn off those emails by default, could you make a stable API that a plugin could hook into to prevent certain notifications? (if it doesn’t already exist — Claude couldn’t find one)

Some kind of hook for that would also be useful for me to be able to write a plugin that prevents emails being sent out when a post in moderation is approved. I never want to send those either, so I always have to go in to sidekiq to manually cancel those jobs. Otherwise the email reminds the user that it took hours to approve their posts and in the meantime they might be feeling bad about it. I was going to have Claude write a plugin, but it said that it would be patching core functionality, and the plugin might break on an update, meaning that I probably still would have to go check Sidekiq each time I approve a post to make sure that the email jobs aren’t being queued.

1 Like

Only if the reasons are for illegal content or acting against terms and conditions. But, not if the reason is spam. Or if the reason is an official (government) demand.

So, let’s not give this kind of law more reach than it already has. Silencing or suspending because of antisocial behaviour or spam should not be covered.

(This is an argument for arranging that terms and conditions don’t disallow antisocial behaviour)

1 Like

I’ve reverted the default of sending suspension/silencing notifications for now in FIX: Restore optional suspension emails outside DSA reporting - Pull Request #45141 - discourse/discourse - GitHub while we discuss this change further internally and whether it makes sense as a default.

2 Likes