Elementor 3.17 Update Broke My Forms — Here’s the Fix

Elementor 3.17 Update Broke My Forms — Here’s the Fix

Everything looks fine for about twelve seconds. Then the contact forms stop submitting. No error message. No console warning. Just… ...

Read More

My WordPress Site Got Hacked (Not My Fault — wp2shell Did It)

Someone just exploited a hole in WordPress core that lets them take over your server without logging in. Here's what ...

Read More

Elementor Update Just Broke My Site — Here’s How I Sorted It

Updated Elementor and your site broke? I walk through the actual fixes that worked when it happened to a client ...

Read More

How To Make A Vertical 3D Gallery Slider

So if you follow along in the video, I refer to this blog post for you to enter code at ...

Read More
Showing Slide 1 of 5

Everything looks fine for about twelve seconds. Then the contact forms stop submitting. No error message. No console warning. Just… nothing.

The Real-World Scenario

Happened last Tuesday on a client’s WooCommerce site in Sandton. They’d updated Elementor overnight — standard maintenance window, right? By 9 AM their lead forms were dead. Zero submissions. The spinner just sat there spinning like it was waiting for a bus that wasn’t coming.

What Actually Broke

Elementor 3.17 changed how `action` attributes work on forms. They moved from inline `action=”/wp-json/elementor/forms/submit”` to a dynamic AJAX handler that requires the `elementor_form_submitted` nonce. If your page cache serves a stale nonce? Form dies silently.

Three things I check in order:

1. Clear all caches — WP Rocket, LiteSpeed, Cloudflare, server-level (HostAfrica/afrihost/nginx). The nonce in the cached HTML is from before the update.

2. Regenerate Elementor data — Elementor > Tools > Regenerate Files & Data. This rebuilds the form endpoints with fresh nonces.

3. Check for `form_data` in `localStorage` — 3.17 caches form state locally. If the user had the page open during update, their browser sends stale data. Hard refresh (Cmd+Shift+R) fixes it.

The Johannesburg Angle

We see this constantly on sites hosted with Afrihost, Web Africa, and Hostigator. Why? Their server-level caching (nginx fastcgi, LiteSpeed LSCache) serves stale HTML for hours after an Elementor update unless you purge manually. Most clients don’t know their host caches at the server level — they think “I cleared WP Rocket, I’m good.”

Had a client on Web Africa Business Hosting last month. Cleared WP Rocket, cleared Cloudflare. Forms still broken. Turns out Web Africa’s nginx cache has a 4-hour TTL by default. Had to log into their cPanel > LiteSpeed Cache > Purge All. Forms worked instantly.

Pro Tip from the Trenches

Disable Elementor’s “Improved Asset Loading” if you’re using ANY caching plugin. They fight. Elementor tries to optimize CSS/JS delivery while WP Rocket/LiteSpeed does the same thing differently. Result: broken nonces, missing CSS, forms that submit to the wrong endpoint.

We’ve seen this cause 3+ second delays on Johannesburg-hosted sites specifically — the asset loading rewrite adds overhead that server-level caching then serves to everyone.

Final Thoughts

Elementor 3.17 isn’t “broken” — it changed the contract. Your cache is serving the old contract. Purge everything, regenerate Elementor data, hard refresh. Takes 3 minutes. Your leads will thank you.