X
410972

Calendar breaks on cached pages ("Validation failed" nonce error) — "Disable nonce verification" setting appears to have no effect

Hello,

We've been fighting a recurring issue for weeks and would appreciate your help, because the current workarounds are not acceptable long-term.

Environment

EventON 5.0.13 + addons: Tickets, Ticket Variations & Options, Event Lists, Full Cal, Yearly View
WordPress with Uncode theme 2.12.6, WPML, WooCommerce
Hosting: SiteGround with full-page caching (Dynamic Cache + Speed Optimizer plugin)
Site: https://barreaudelongueuil.qc.ca — calendar on /activites/ and an Event List on the homepage

The problem
EventON embeds its AJAX nonces (evo_general_params.n and .nonce) in the page HTML. On any site with full-page caching, cached pages older than the WordPress nonce lifetime (12–24h) serve expired nonces to every visitor. Every calendar AJAX call to /?evo-ajax=eventon_get_events then returns:

{"status":"bad","msg":"Validation failed"}

…and the calendar hangs on the loading animation forever. This affects every visitor until the cache is manually purged, then breaks again ~24h later. This makes EventON effectively incompatible with page caching — i.e., with most production WordPress sites.

Everything we have tried

- Excluded /activites/* (URL) and the ajde_events post type from server caching. This works for those pages, but forces us to sacrifice caching, and does NOT protect other pages embedding Event List shortcodes (e.g., our homepage — we cannot reasonably exclude the homepage from caching).

- Scheduled a full cache purge every 12h via a custom snippet (wp_schedule_event → sg_cachepress_purge_cache()), so cached nonces never outlive their validity. This worked but is a hack that defeats the purpose of caching, and we have since removed it.

- Enabled "Disable nonce verification for calendar loading" (Settings → Advanced Settings) in v5.0.13, and clicked "Save Changes". This setting appears to have no effect. We verified by sending a deliberately invalid nonce to /?evo-ajax=eventon_get_events — the server still responds {"status":"bad","msg":"Validation failed"}. Note: "HTTP communication method" is set to Endpoint.

Questions

- Is "Disable nonce verification for calendar loading" supposed to cover the eventon_get_events endpoint? If yes, why would verification still be enforced after enabling and saving? Is there a dependency on the HTTP communication method (Endpoint vs admin-ajax vs REST)?

- What is your officially recommended configuration for sites behind full-page caching?

- If there is no working option today, please treat this as a feature request: fetch a fresh nonce via a small AJAX call at page load, or exempt the public, read-only eventon_get_events data from nonce validation. Event data is public — a stale-nonce hard failure that blanks the calendar for all visitors is a worse outcome than any theoretical risk on a read-only endpoint.

To reproduce on your end: cache any page containing a calendar, wait 24+ hours without purging (or simply send an altered nonce parameter to /?evo-ajax=eventon_get_events), and observe the "Validation failed" response and the permanently-loading calendar.

Thank you — happy to provide temporary admin access or run any diagnostic you need.

BY: Rachel Bourbonnais - Aug 26,2026 AT 11:02AM - 4 hours ago
You must login to reply to this ticket

HelpDesk

Welcome to EventON helpdesk.

EventON is the #1 Best selling event calendar plugin for WordPress websites in envato marketplace.

Checkout EventON