• In a multisite setup (WordPress 5.9 and earlier), the menu command Purge All Caches works properly for the primary site but fails for all child sites, printing the message The link you followed has expired. This appears to be the same issue as this closed ticket from 2019, which says, “This is a known issue with multisite. This will be fixed in future releases.”

    My multisite installation uses separate domain names for each site (primarysite.com, child1.com, child2.com, etc.), if that matters.

    On the primary site, the Purge All Caches command leads to the results page primarysite.com/?w3tc_note=flush_all, and the caches flush properly.

    On a child site (say, child1.com), the command leads to primarysite.com/wp-admin/network/admin.php?page=w3tc_dashboard&w3tc_flush_all&_wpnonce=nnnnnnnn, which displays the error message. (Note that the URL says primarysite.com, not child1.com.)

    Any plans to fix this long-outstanding bug? Thank you very much.

Viewing 4 replies - 1 through 4 (of 4 total)
  • Plugin Contributor Marko Vasiljevic

    (@vmarko)

    Hello @maiden_taiwan

    Thank you for reaching out and I am happy to assist you with this.
    After a lot of testing we determined that whenever an admin user logs in to multiple “sites” under an MU, each subsequent login forces an update on all nonces. This will require the user to refresh any other browser windows that are viewing the MU/sites admin dashboard or front-end with admin-bar to update the link nonces. However, the front-end admin bar links can become cached either by the plugin page cache if you have caching enabled for admins or browser caching which will result in the links remaining with the old nonce even upon refresh. There is no fix for this behavior besides clearing both the page and browser caches after each login and then refreshing all windows with outdated links.
    Try purging the cache and clearing your browser cache before login and see if this helps!
    Thanks!

    Thread Starter maiden_taiwan

    (@maiden_taiwan)

    Thanks for your note. I did all of these steps in order:

    1. Visit The W3 Total Cache admin page /wp-admin/network/admin.php?page=w3tc_dashboard and click “Empty All Caches”
    2. Select the top menu item Network Admin / Performance / Purge All Caches, in case that’s different
    3. Empty the browser cache
    4. Restart memcached on the server
    5. Restart apache2 on the server
    6. Hard-refresh of the local site’s admin page.
    7. On local site, choose “Purge All Caches”

    I still get the “link expired” error message on local sites.

    I tried the above steps with both values (checked and unchecked) of the W3TC general setting Use single network configuration file for all sites. (Which setting is correct?)

    I also enabled WordPress debugging during all this, but did not get any error messages in wp-content/debug.log.

    Any next steps? Thanks.

    Thread Starter maiden_taiwan

    (@maiden_taiwan)

    I also tried this: open an incognito browser window, log directly into the local site, and click “Performance / Purge All Caches”. I am immediately redirected to the login page again (I think for the Network). I log in again, and I’m taken to /wp-admin/network/admin.php?page=w3tc_dashboard&w3tc_flush_all&_wpnonce=cd996b7691, which displays “The link you followed has expired. Please try again.” In the incognito browser, I “Purge All Caches” at the network level again and clear the browser cache again. I still get the same error.

    Plugin Contributor Marko Vasiljevic

    (@vmarko)

    Hello @maiden_taiwan

    Thank you for the information.
    We need to test this more if different domains are factoring into this as with our testing only sub-domains were used.
    I’ll get back to you once I have more information.
    Thanks!

Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘Multisite: “The link you followed has expired”’ is closed to new replies.