By default, the WordPress REST API doesn’t pass along authentication data.

If your FacetWP template or customization code depends on the currently logged-in user (e.g. with is_user_logged_in(), you’ll run into issues when an AJAX refresh is triggered.

Fortunately, there’s an easy workaround: add the following code to your (child) theme’s functions.php:

/*
  Please note that caching may interfere with the NONCE,
  causing ajax requests to fail. Please DISABLE CACHING for facet pages,
  or set the cache expiration to < 12 hours!
*/

add_action( 'wp_footer', function() {
  ?>
    <script>
      document.addEventListener('facetwp-loaded', function() {
        if (! FWP.loaded) { // initial pageload
          FWP.hooks.addFilter('facetwp/ajax_settings', function(settings) {
            settings.headers = { 'X-WP-Nonce': FWP_JSON.nonce };
            return settings;
          });
        }
      });
    </script>
  <?php
}, 100 );

See also