BLACK FRIDAY
Save 59% on PageForge Annual $191/year $485/year
Claim 59% Off →
Nonce Failure Explainer — Diagnose "Are You Sure You Want To Do This?" icon
Actively maintained Tested with WP 7.1

Nonce Failure Explainer — Diagnose "Are You Sure You Want To Do This?"

Explains "Are you sure you want to do this?" and "Security check failed" errors: finds the failed nonce check and names the likely cause.

Active installs<10New
Downloads · 30d70▼ -26.3% vs prev. 30d
Rating—0 reviews
Health score60/100Fair
All-time downloads241Since Aug 2026
Support resolved—No recent threads
RequiresWP 5.6PHP 7.4+
Downloads · 7d13• 0% week over week
Our verdict

Use with caution

Nonce Failure Explainer works, but test it on a staging site before relying on it in 2026. Was last updated 2 months ago, and scores 60/100 on our health check.

  • Tested with the latest WordPress (7.1)
  • Small user base (<10 active installs)
  • Very few reviews so far

How does it stack up?

Side-by-side on installs, updates, ratings & support

Daily downloads

71523Aug 19Sep 19Oct 20
Yesterday0
Daily average (1y)4
Peak day31Aug 21, 2026
Last 12 months247

Download spikes usually follow a new release — each site that auto-updates counts as a download.

Rankings

Where Nonce Failure Explainer stands today

WordPress.org search rankings

Live position in the plugin search, top 100
KeywordPositionCompeting pluginsCategory
ajax >100 8,546 Best ajax plugins →
debugging >100 1,655 Best debugging plugins →
nonce #84 6,756 Best nonce plugins →
security check failed >100 2,708 Best security check failed plugins →
troubleshooting >100 1,928 Best troubleshooting plugins →

About Nonce Failure Explainer

From the official readme · v1.2.0

Description

If WordPress has shown you “Are you sure you want to do this?”, “Security check failed”, “The link you followed has expired”, or a bare 403 on an AJAX request, a nonce check failed. WordPress will not tell you which nonce, or why.

This plugin does. It watches every nonce check on your site, records the ones that genuinely block something, and states the most likely cause along with the specific thing to check next.

The errors this diagnoses

  • “Are you sure you want to do this?” — the classic admin nonce failure
  • “Security check failed” — the same failure, phrased by a plugin or theme
  • “The link you followed has expired” — an expired nonce on a link or form
  • A silent 403 or -1 response from admin-ajax.php
  • Forms that submit and appear to do nothing at all

Causes it distinguishes

  • No nonce was submitted — the field or query argument never reached the server. Confirmed, not inferred.
  • The session ended — an auth cookie arrived but no longer resolves to a user.
  • A cached page served a stale nonce — detected when an anonymous request fails while a known caching layer is active.
  • No session token — the user is logged in but has no session for the nonce to key against.
  • Expired or mismatched action — everything needed was present, so the value itself did not match.

What it records

For each failure:

  • The most likely cause, with an explicit confidence level
  • A concrete next check to run
  • The nonce action string
  • The request type (ajax, rest, admin, admin-post, cron, cli, frontend), method, and path
  • A best-effort guess at which plugin or theme ran the check
  • Whether the user was logged in

What it never records

  • The nonce value itself
  • Authentication cookies or session tokens
  • Passwords, API keys, or any request body
  • Query strings, which routinely carry one-time tokens

Function arguments are excluded from the stack trace capture, so sensitive values are never even loaded into memory during attribution.

Three sections

  • Recorded failures — the log, with headline figures and a ranking of what is failing most.
  • Causes and fixes — every diagnosis explained in full, with the concrete checks to run.
  • Environment — the settings that decide whether a nonce verifies at all: nonce lifetime, any detected page cache, persistent object cache, and login session length. A nonce lifetime shortened by another plugin, or a session shorter than the nonce it carries, explains failures that otherwise look like bugs.

Design

Read-only. The plugin observes and explains; it never alters a request, extends a nonce lifetime, or changes site behaviour in any way. Storage is a single non-autoloaded option capped at 200 events with a seven-day expiry, so it cannot grow unbounded on a busy site.

Nothing is sent anywhere. There is no external service, no telemetry, no phone-home, no upsell, and no premium version.

Installation

  1. Upload the plugin to /wp-content/plugins/nonce-failure-explainer, or install it through the Plugins screen.
  2. Activate it.
  3. Reproduce the failing request.
  4. Visit Nonce Failures in the admin menu.

Frequently asked questions

Why does WordPress say “Are you sure you want to do this?”

Because a nonce check failed. WordPress puts a one-time token into admin forms and links to prove a request came from your own page, rather than being forged by another site while you are logged in. When that token is missing, expired, or does not match, WordPress blocks the request and shows that message — without saying which of those it was. This plugin records the failure and tells you which.

What is a nonce in WordPress?

A “number used once”: a short-lived token WordPress adds to forms and action links to protect against cross-site request forgery. Nonces expire after 24 hours by default, which is why a page left open overnight often fails on submit.

Does this fix nonce failures?

No, and deliberately so. It is a diagnostic tool. Automatically extending nonce lifetimes or bypassing checks would weaken the protection nonces exist to provide. It tells you where the fault is; fixing it stays a decision you make.

Why is my log empty?

That is the expected result on a healthy site, and since version 1.2.0 it is considerably more likely. The plugin now records only checks that actually blocked a request. Reproduce the failing request and it will be captured.

Will it slow my site down?

The recorder only does work when a check actually fails. There is no cost on successful requests, and events are written once per request rather than once per event.

Why does it say “possible cause” rather than telling me exactly what happened?

Because WordPress does not distinguish an expired nonce from one generated for a different action — both simply fail to match. Where the cause can be established as fact, the plugin says “Confirmed”. Where it is inference, it says so.

Is it safe on a production site?

Yes. It is read-only, stores no secrets, and caps its own storage. The clearing action is capability-checked and nonce-protected.

Does it work with multisite?

Yes. The log is per-site, and uninstalling clears it across every site in the network.

Can I stop it recording a particular nonce action?

Yes. Add the action string to the noncfaex_muted_actions filter and it is ignored entirely.

Changelog

Fixes false positives. 1.1.0 recorded harmless non-blocking nonce checks as confirmed failures, which on a busy site crowded out the real ones. Recommended for everyone.

1.2.0

  • Fixed: non-blocking nonce checks are no longer recorded as failures. check_ajax_referer() and check_admin_referer() both take a $stop argument, and when it is false the caller is asking a question rather than guarding a door — Yoast SEO, for one, asks on every admin screen whether the current request is a Quick Edit save. Version 1.1.0 logged every one of those as a confirmed failure, naming a plugin that had done nothing wrong. On a real site that was the large majority of the log, and the noise pushed genuine failures out of the capped log within the hour.
  • Fixed: events are written once per request instead of once per event. The previous read-modify-write meant two failures in the same instant could lose one of the two.
  • New: a nonce action can be silenced with the noncfaex_muted_actions filter.
  • New: a Settings link on the Plugins screen, alongside support and review links.
  • Changed: every option the plugin creates is now removed on uninstall, not just the log.

1.1.0

  • The screen is now its own top-level menu rather than an item under Tools, and is split into three tabs.
  • New “Causes and fixes” tab explaining every diagnosis in full, with the concrete checks to run for each. The log links straight to the relevant entry.
  • New “Environment” tab reporting the settings that decide whether a nonce verifies: nonce lifetime, any detected page cache, persistent object cache, and login session length. A nonce lifetime shortened by another plugin, or a session shorter than the nonce it carries, explains failures that otherwise look like bugs.
  • Headline figures above the log: how many failures, the most common cause, how many distinct nonce actions are involved, and the time span they cover. More than one action string means the problem is not a single broken form.
  • The empty state now says that an empty log is the expected result on a healthy site, and explains how to reproduce a failure so it gets captured.
  • The screen has been rebuilt: the three sections are now real pages in the sidebar, each recorded failure folds down so a long log stays readable, and every cause is a section you can open rather than a wall of text.
  • Assets are versioned by file rather than by plugin version, so a changed stylesheet can never be served from a stale browser cache.
  • Tested up to WordPress 7.1.

1.0.0

  • Initial release.

Full changelog on WordPress.org →

Screenshots

The log, with the headline figures above it and a ranking of what is failing most.
The log, with the headline figures above it and a ranking of what is failing most.
One failure opened: the diagnosis, the specific thing to check next, and the request it came from.
One failure opened: the diagnosis, the specific thing to check next, and the request it…
Causes and fixes. A failure links straight to its own entry, which arrives already open.
Causes and fixes. A failure links straight to its own entry, which arrives already open.
The state a healthy site stays in, with how to reproduce the failure you are chasing.
The state a healthy site stays in, with how to reproduce the failure you are chasing.
The settings on this installation that decide whether a nonce verifies at all.
The settings on this installation that decide whether a nonce verifies at all.

For developers

Is this your plugin? Show off the numbers.

Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.

Active installs badge Rating badge Health score badge

Best Nonce Failure Explainer alternatives

All ajax plugins →
Alternatives
Rank Plugin Active installs Rating Updated Health
1 zipaddr-jp zipaddr-jp zipaddr-jp is a collaborative tool that automatically inputs addresses from postal codes. by ta_terunuma 50K+ ★★★★★★★★★★ 5 (6) 3 months ago 77
2 SearchWP Live Ajax Search SearchWP Live Ajax Search Template powered live search for any WordPress theme. Does not require SearchWP, but will… by Syed Balkhi 50K+ ★★★★★★★★★★ 4.7 (36) 2 months ago 85
3 WP-Polls WP-Polls Adds an AJAX poll system to your WordPress blog. You can also easily add a poll into your… by Lester Chan 40K+ ★★★★★★★★★★ 4.2 (136) 2 months ago 87
4 WP-PostRatings WP-PostRatings Adds an AJAX rating system for your WordPress site's content. by Lester Chan 20K+ ★★★★★★★★★★ 4.4 (178) 2 months ago 87
5 WPC AJAX Add to Cart for WooCommerce WPC AJAX Add to Cart for WooCommerce It is a highly effective plugin for helping online stores cut down the site’s loading time… by WPClever 10K+ ★★★★★★★★★★ 4.4 (18) 1 month ago 83
6 Ajax Cart AutoUpdate for WooCommerce Ajax Cart AutoUpdate for WooCommerce A light plugin that automatically updates cart page and mini-cart when product quantity is… by taisho 7K+ ★★★★★★★★★★ 5 (214) 6 years ago 46
7 Relevanssi Live Ajax Search Relevanssi Live Ajax Search Template powered live search for any WordPress theme. Compatible with Relevanssi search! by Christoph Vielgrader 7K+ ★★★★★★★★★★ 5 (9) 5 months ago 58
8 Enable CORS Enable CORS Please read the plugin description before installing to ensure compatibility and avoid… by Dev Kabir 6K+ ★★★★★★★★★★ 3.7 (3) 3 months ago 64
9 Load More Anything Load More Anything Add Load More button for your blog post, custom type, Comments, page, Category, Recent… by Akhtarujjaman Shuvo 5K+ ★★★★★★★★★★ 4.5 (73) 11 months ago 59
10 YMC Filter YMC Filter A powerful and flexible plugin to filter and display posts, custom post types, and other… by YMC 4K+ ★★★★★★★★★★ 4.8 (34) 3 days ago 92

FAQ

Nonce Failure Explainer: quick answers

Straight answers, pulled from live WordPress.org data.

Live data from WordPress.org · checked Oct 21, 2026

Is Nonce Failure Explainer free?

Yes. Nonce Failure Explainer is free to download and use from the official WordPress.org plugin directory.

Is Nonce Failure Explainer safe to use in 2026?

Nonce Failure Explainer works, but test it on a staging site before relying on it in 2026. Was last updated 2 months ago, and scores 60/100 on our health check.

How many websites use Nonce Failure Explainer?

Nonce Failure Explainer is active on <10 WordPress websites and has been downloaded 241 times since it launched in August 2026. It was downloaded 70 times in the last 30 days.

Does Nonce Failure Explainer work with WordPress 7.1?

Yes. The developer has tested Nonce Failure Explainer up to WordPress 7.1.3, the latest release. It requires WordPress 5.6 or newer.

What PHP version does Nonce Failure Explainer need?

Nonce Failure Explainer requires PHP 7.4 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.

When was Nonce Failure Explainer last updated?

The latest version, 1.2.0, was released on August 21, 2026 (2 months ago).

Who makes Nonce Failure Explainer?

Nonce Failure Explainer is developed and maintained by Syed Shahzaib Hassan.

What are the best alternatives to Nonce Failure Explainer?

The most popular alternatives to Nonce Failure Explainer are zipaddr-jp (50K+ installs), SearchWP Live Ajax Search (50K+ installs) and WP-Polls (40K+ installs).

Powered by PageForge

Want thousands of pages that rank like these? Build them in an afternoon.

This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.

  • CSV, Google Sheets & API data sources
  • AI content, schema & internal links per page
  • Works with Elementor, Gutenberg, Yoast & Rank Math
  • Free on WordPress.org — no credit card
Sarah is here to help!
Hi there! 👋 Need help finding what you're looking for?
Sarah
Sarah
Online & Ready to Help
Hi there! 👋 Need help finding what you're looking for?

We'll use this to continue our conversation

Just now ✓ Verified

Join 500+ SEO Pros Scaling Their Strategy

Get exclusive programmatic SEO tactics, AI content workflows, and the latest PageForge updates delivered straight to your inbox. Stay ahead of the algorithm.

We care about your data in our privacy policy.