The silent lead killer
Gravity Forms is the most-used premium WordPress form plugin (300,000+ active installations). When it works, it's reliable. When it breaks, it often does so silently — the form appears to submit, the user sees a "thanks" message, but the entry never reaches you.
The customer thinks you ignored their inquiry. You don't know there's a problem. Leads die quietly.
This article is the diagnostic playbook for every cause of silent Gravity Forms failure we've documented.
How to know if you have silent submissions
If you can't be sure your form is working, the first test is:
1. Submit a test form on the live site (use real-looking data)
2. Check Forms → Entries — is the entry there?
3. Check the email account that should receive notifications — did it arrive?
4. Check Forms → Forms → Settings → Notifications → "Send to" → verify emailIf step 2 fails: entries aren't saving. Backend issue. If step 2 succeeds but step 3 fails: entries save but notifications fail. Email issue.
The fix depends on which.
Cause 1 — Form submits, no entry saved
The form shows the success message but Forms → Entries has nothing.
Diagnosis
Open browser DevTools → Network. Submit the form. Look for the POST to admin-ajax.php or wp-json/gf/v2/.
- 200 response, but no entry? → JS submission "pretends" to succeed without server save
- 500 response? → Backend error; check PHP error log
- Form reloads instead of submitting? → AJAX disabled or JS error
Fix
If 200 with no save, check Gravity Forms entry of debug.log:
tail -100 /var/www/yoursite/wp-content/debug.log | grep -i gravityCommon error: "RGFormsModel::insert_entry failed" — indicates database write failure. Check disk space and table permissions:
SHOW TABLE STATUS LIKE 'wp_gf_entry';Cause 2 — Notifications not sending
Entries save, but notification emails don't arrive.
Diagnosis
wp eval 'gf_log_test_notification(123, 1);' # form_id=123, notification_id=1Or, simpler — check WP Mail SMTP/FluentSMTP log if you have one installed.
If no SMTP plugin: install one immediately. Native wp_mail() uses PHP's mail() function which most hosts now block due to spam abuse.
Fix
- Install WP Mail SMTP (free)
- Configure with SendGrid, Postmark, or your mail provider
- Send a test email from WP Mail SMTP settings
- Re-test form submission
For most WordPress sites in 2026, native mail() doesn't work. Always use SMTP.
Cause 3 — Spam filter blocks valid submissions
Gravity Forms has built-in honeypot and Akismet integration. Sometimes these flag legitimate users as spam.
Diagnosis
Forms → Entries → filter by Spam status. If you see entries there, the spam filter caught them.
Fix
- In each form's Settings → Form Settings → Anti-spam → review settings
- Disable Akismet integration if you have other anti-spam (CAPTCHA)
- Disable honeypot if you have CAPTCHA
- Don't double up — pick one anti-spam method
Better: use Cloudflare Turnstile, which doesn't have the false-positive issues of Akismet on form pages.
Cause 4 — AJAX disabled, no JS confirmation
The form has AJAX submission disabled. Page refreshes after submit. Users see the URL change to ?gf_token=... and may think nothing happened.
Fix
Enable AJAX in the form's embed:
[gravityform id="1" title="false" description="false" ajax="true"]Or in PHP:
gravity_form(1, false, false, false, null, true);
// ^^^^ ajax = trueThis makes submission happen via AJAX, with smooth confirmation messages.
Cause 5 — Page caching serves stale form
Your page-level cache serves the form HTML from cache. The form's nonce expired, so submissions are rejected with "This form is not properly configured."
Fix
In your caching plugin (WP Rocket, W3 Total Cache, LiteSpeed):
- Exclude pages with Gravity Forms from cache, OR
- Use Gravity Forms' "AJAX nonce regeneration" hook which refreshes the nonce on demand
For WP Rocket: - Settings → Advanced Rules → Never Cache (URLs) → add /contact/, /quote/, etc.
For LiteSpeed: - LiteSpeed Cache → Cache → Excludes → URI
Cause 6 — Conditional logic shows wrong fields
A form with conditional logic (show field X if value Y is selected) misbehaves. Users see fields they shouldn't, or submit without filling required ones.
Diagnosis
This is usually JS-related. Disable any JS optimization plugin temporarily and re-test.
Fix
If JS optimization breaks conditional logic: - Exclude Gravity Forms scripts from minification/deferral - Or disable the JS optimization on form pages
For WP Rocket, exclude *gforms* from "File Optimization > JavaScript > Files".
Cause 7 — File uploads silently fail
Forms with file upload fields succeed but the uploaded file never appears in entries.
Diagnosis
# Check PHP upload limits
php -i | grep -E "upload_max_filesize|post_max_size|max_input_time"Common defaults are 2M (too low) and 8M post.
Fix
In php.ini or .user.ini:
upload_max_filesize = 64M
post_max_size = 80M
max_input_time = 120
max_execution_time = 300Restart PHP-FPM. Re-test.
Cause 8 — Custom code breaks form submission
You (or a previous developer) added custom code to functions.php that hooks into gform_after_submission. The code throws an error, but it's after the entry saves, so the entry exists but downstream actions (like CRM sync) fail.
Diagnosis
tail -100 /var/www/yoursite/wp-content/debug.log | grep -i "gform\|gravity"Look for errors mentioning your custom hook.
Fix
Wrap custom Gravity Forms hooks in try/catch:
add_action('gform_after_submission', function($entry, $form) {
try {
// your custom logic
$crm->sync($entry);
} catch (Exception $e) {
error_log('GF post-submit error: ' . $e->getMessage());
// don't re-throw — let the form succeed
}
}, 10, 2);Monitoring for silent failures
Set up alerts for unusual entry patterns:
# Cron: alert if no entries in last 24h
0 9 * * * /var/www/yoursite/scripts/check-gf-entries.shThe script:
#!/bin/bash
cd /var/www/yoursite
COUNT=$(wp eval 'echo count(GFAPI::get_entries(0, [], null, ["page_size" => 100], null, null, true));')
if [ "$COUNT" -eq 0 ]; then
echo "No Gravity Forms entries in last 24h" | mail -s "ALERT" admin@yoursite.com
fiCommon mistakes during Gravity Forms diagnosis
- Trusting "Thank you" message — that's just JavaScript; doesn't mean entry saved
- Not checking spam folder for entries — Akismet often filters legit ones
- Updating Gravity Forms without testing — same as any plugin; staging first
- Manually editing entries in database — corrupts entry metadata; use GFAPI instead
When to call a specialist
Forms that silently fail cost leads daily. We do a 1-2 hour Gravity Forms audit that finds and fixes the root cause for ongoing issues.
Form fix support within hours. For broader plugin work see plugin conflict repair.

