This guide explains how to remove an official warning in Discourse via the console, particularly aimed at self-hosting users.
Required user level: System Administrator
Console access required
In certain situations, a warning issued to a user may need to be retracted. This action involves removing the warning through the console, which is accessible for those with server access. If you are a hosted customer, please contact the Discourse team (team@discourse.org) for assistance with this process.
Understanding user warnings
Official warnings involve two pieces of data in the Discourse database:
- A record in the
user_warningstable linking the warning to a user and topic. - The associated private message topic has its
subtypeset to"moderator_warning".
To fully undo a warning, both need to be addressed: the user_warnings record must be deleted, and the topic’s subtype must be reset.
Removing an official warning
To remove a warning, follow these steps:
-
Access the server console:
- Use SSH to connect to your Discourse server.
- Enter the console with the following commands:
cd /var/discourse/ ./launcher enter app rails console
-
Remove the latest warning:
If the warning you want to delete is the most recent one, execute:warning = UserWarning.last warning.topic.update(subtype: TopicSubtype.user_to_user) warning.destroy -
Find and remove a specific warning:
If the warning wasn’t the last one, search for the specific warning using theuser_id:UserWarning.where(user_id: the_user_id)This will return an array of warnings related to the user. Once you find the correct
id, remove it using:warning = UserWarning.find(3) warning.topic.update(subtype: TopicSubtype.user_to_user) warning.destroy
Destroying the warning record and resetting the topic subtype will remove the warning from the user’s warning count and unmark the PM as an official warning. The private message itself will not be deleted.
Last edited by @SaraDev 2024-11-13T00:51:26Z
Check document
Perform check on document: