Using Safe Mode to troubleshoot issues with themes and plugins

:bookmark: This guide explains how to use Discourse’s Safe Mode to troubleshoot issues with themes and plugins.

:person_raising_hand: Required user level: All users

Discourse offers a “JavaScript Safe Mode” that allows any user to isolate the root cause of JavaScript issues caused by plugins, themes, or theme components. This feature is particularly useful for troubleshooting problems on your Discourse site.

Accessing Safe Mode

To access Safe Mode, follow these steps:

  1. Open a new browser tab.

  2. Enter the following URL in the address bar, replacing [your-site-name](http://discourse.example.com) with your actual Discourse site domain:

    http://discourse.example.com/safe-mode
    

    For example, the Safe Mode URL for the Discourse demo site is:
    https://try.discourse.org/safe-mode

  3. Click the ‘Enter Safe Mode’ button:

Safe Mode options

When entering Safe Mode, you can select from the following options:

  • Disable all themes and theme components
  • Disable unofficial plugins
  • Disable all plugins

By default, all three options are selected. However, you can enter Safe Mode multiple times with different combinations to isolate the specific component causing issues on your site.

Using Safe Mode

  1. Select the desired options on the Safe Mode page.
  2. Click “Enter Safe Mode” to apply your selections.
  3. You will see a banner indicating that Safe Mode is enabled.
  4. Browse your site to check if the issue persists with the selected components disabled.

Exiting Safe Mode

To exit Safe Mode, simply close your browser tab.

Important notes

When sharing a Safe Mode link for your site, be aware that it needs to be opened in a new tab or added directly to the address bar; otherwise, it may not work correctly.

:warning: Safe Mode currently only disables the JavaScript portions of plugins. To disable the server-side portion of a plugin, you must rebuild your container with the plugin commented out.

Troubleshooting

If you cannot load the initial Safe Mode selection page, try visiting the following URL, which will skip the page and load Safe Mode directly:

https://discourse.example.com/?safe_mode=no_themes,no_plugins

For example: https://try.discourse.org/?safe_mode=no_themes,no_plugins

:information_source: On Discourse versions 2.9.0.beta8 and below, you need to use ?safe_mode=no_custom,no_plugins instead.

Last edited by @hugh 2024-07-30T05:32:08Z

Check documentPerform check on document:
71 Likes

Somehow, for me those links only work when I open them in a new tab or window. The first one leads to the oops page and the second one to the homepage. But the safe-mode banner does not appear. The second one can lead to problems when you send a link to a user to let them try safe-mode. If they just click the link, they will still use the site without safe-mode.

Maybe this information should be added to the how-to.

3 Likes

Good catch -both links are borked. The first needs a ? and the second needs a comma instead of %2C

1 Like

Where does it need a “?”?
Could you share the link as an example?

Oh, sorry, it looks like I’m wrong on the first one: the internal navigation fails, but for a new window it works.
Discourse Meta

And I’m wrong on the other one too! Discourse Meta - The Official Support Forum for Discourse
doesn’t work as a same-page navigation.

My mistake: something is broken, but it’s not the URLs.

I think it’s because it’s trying to open them in place. Rather than argue with it I’ve swopped them out for try.discourse.org. :slight_smile:

1 Like

I think somehow admins should still be informed that sharing those links can easily be a problem.

For example, I report an issue on meta. You could ask, “Could you try https://meta.discourse.org/safe-mode?” Then I would tell you that the link does not work.
Or even worse: you want to specify that I disable only themes, so you ask me to try https://meta.discourse.org/?safe_mode=no_themes. My problem still exists. How are you sure I really used safe-mode? As a user, I think it worked because something happened when I clicked the link.

After I posted here, you know about this. But how do other admins know they have to pay attention that this could be a problem?

2 Likes

I’m wondering, due to the nature of this safe home page displayed (that replaces all the content), if an exception should be made to open this link to a new tab.

1 Like

I’ve added a note and also a screenshot of a ‘successful’ one. How does that look?

3 posts were split to a new topic: Should safe mode be default off for non-staff users?