Disable the Check out what changed dialog in Confluence 9

Is there any way to disable the check out what has changed in Confluence dialog from popping up. Preferably via a command line switch. It messes with our automated ui tests.

The banner even shows up when you disable:

com.atlassian.confluence.plugins.whatsnew

1 Like

When you click on the close button. Confluence sends a POST request to http://localhost:8090/rest/analytics/1.0/publish/bulk:

This indicates that the modal is part of the com.atlassian.confluence.plugins.confluence-frontend plugin which cannot be disabled. And that it seems to be a benefit modal: https://atlassian.design/components/onboarding/benefits-modal/examples.

It turns out that the dialog is generated by a feature called feature-discovery. There is also a system plugin for this, but disabling it will not stop the messages from appearing. In fact, disabling it removes the option to use the feature’s REST API, which makes it counterproductive. Instead, you can disable individual features via the REST API, but this needs to be done for each feature separately. As new features are added in future releases, the code will need adjustments accordingly.

Here’s an example of how to do this using Retrofit (java):

public interface Retrofit2ConfluenceService {
    @POST("rest/feature-discovery/1.0/discovered/{plugin}/{feature}")
    Call<Void> markFeatureAsDiscovered(@Path("plugin") String plugin, @Path("feature") String feature);
}

public class DisableFeaturePopUp {
    private final Retrofit2ConfluenceService retrofit2ConfluenceService;

    [...]

    public void markFeaturesAsDiscovered() throws Exception {
        // Reference: https://community.developer.atlassian.com/t/disable-the-check-out-what-changed-dialog-in-confluence-9/84981/2
        retrofit2ConfluenceService.markFeatureAsDiscovered("com.atlassian.confluence.plugins.confluence-frontend", "dark-theme").execute();
        retrofit2ConfluenceService.markFeatureAsDiscovered("com.atlassian.confluence.plugins.confluence-frontend", "view-page-read-time").execute();
        retrofit2ConfluenceService.markFeatureAsDiscovered("com.atlassian.confluence.plugins.confluence-editor-plugin", "editor-word-count").execute();
    }
}

In our setup, I call this code in the end-to-end tests immediately after setting up Confluence, using the same user that runs the tests. This successfully suppresses the popup.

Here are other approaches I tried, but found to be unsuccessful:

  • Using display:none in CSS to hide the popup: This approach failed due to the generic class names used by the popup elements. I could not get it to be hidden and pointer events to work properly.
  • Using the --disable-addons CLI switch: I attempted to disable the plugin responsible for generating the popup, but it seems that it is part of the confluence-frontend plugin, which cannot be disabled.
  • Clicking the Close button via Playwright: This method didn’t work consistently, as the popup appeared unpredictably, making automation unreliable.

The REST API approach has proven to be the most effective and stable solution for suppressing the feature-discovery popups.

Note: The relevant feature and plugin names can be captured by monitoring the Network tab in the developer tools when clicking on “Close” in the dialog.

1 Like

For what it’s worth, the following query will give you an idea of what popup “features” you might need to deactivate, based on those that have already been clicked through by at least one user:

select distinct "KEY","PLUGIN_KEY" from "AO_6384AB_DISCOVERED" ORDER BY 2,1;
1 Like