Description
WooCommerce shows you this and then leaves you alone with it:
Action Scheduler: 848 past-due actions found; something may be wrong.
It does not say what is wrong, which plugin is responsible, or what to do. This plugin answers all three.
What it tells you
- Which hooks are backed up, grouped and counted — so instead of 848 unreadable rows you see “812 of these are subscription renewals”.
- Which plugin they probably come from, worked out from the hook name.
- How late the oldest one is, in plain words.
- Whether they are waiting or failing — a completely different problem with a completely different fix.
Why the queue stopped
The diagnostics check the causes that actually happen, and each one says what it means and what to do next:
- WP-Cron switched off in wp-config.php (
DISABLE_WP_CRON) with no server cron job put in its place. This is the most common cause by a distance. - The site cannot call itself — WP-Cron works by making a request to your own site, and if outbound requests are blocked that request silently never lands.
- The queue has not run in days, whatever the settings claim.
- Jobs failing rather than waiting, which points at a broken plugin instead of broken scheduling.
- A backlog too large to clear at the normal batch size.
- PHP execution limits cutting batches off part-way, so the same actions are retried forever.
Fixing it
- Run the queue now — processes a batch immediately. This is also the fastest test there is: if actions clear, your jobs are fine and nothing is triggering the queue automatically. If nothing clears, the jobs themselves are failing.
- Retry failed actions for one hook, keeping their arguments and history.
- Cancel a backlog for one hook, with a clear warning first about what will not happen.
- Daily email if the backlog grows past a number you choose. Stuck actions fail silently — without a warning, nobody finds out until a customer complains.
How this differs from the cleaner plugins
The existing tools in this area delete completed actions to shrink your database. That is useful housekeeping and it does nothing at all for actions that are stuck. If you are here because of the past-due warning, a cleaner will not help you.
This plugin does not delete anything on its own. Cancelling is marked, not deleted, so it stays visible afterwards and a mistake can be seen.
Works with
Anything that uses Action Scheduler — WooCommerce, WooCommerce Subscriptions, WPForms, Jetpack, MailPoet, Easy Digital Downloads and many more.
Free and Pro
Everything described above is free, permanently, including the daily email alert.
Pro adds things that are not in this plugin at all:
- Check every hour instead of once a day, so a broken queue is caught within an hour rather than the following morning.
- Slack and webhook alerts. A Slack incoming webhook gets a readable message; any other HTTPS endpoint gets JSON with the same numbers in named fields.
- A record of the backlog over time, and a plain answer to the question a single number cannot settle: is this rising or draining?
- Unattended retrying of failed actions at each check, bounded so a hook that fails for a real reason cannot be retried forever.
Pro is a separate download, sold through Freemius: StallRadar Pro — $39 a year for one site, with 5, 10 and 20-site licences for agencies. None of that code is in this plugin. Nothing here is switched off or waiting for a key; what you install is the whole of what you get.
Screenshots



Installation
- Install and activate. Action Scheduler must be present, which it is if you run WooCommerce or any plugin that uses it.
- Go to Tools Past-Due Actions.
- Read the page top to bottom: how bad it is, why it is happening, what to press.
FAQ
-
How do I fix “Action Scheduler: past-due actions found; something may be wrong”?
-
Install this plugin and open Tools Past-Due Actions. It shows which hooks are late, which plugin they belong to and which of the six common causes is behind it, with the fix for each. Most often the cause is WP-Cron being disabled with nothing replacing it.
-
Will this delete my scheduled actions?
-
Not on its own. Nothing is removed unless you press “Cancel backlog” for a specific hook, and that marks them cancelled rather than deleting the rows, so the history stays visible.
-
What does “past due” actually mean?
-
An action whose scheduled time has passed but which has not run. It is not a status Action Scheduler stores, which is why you cannot find these by filtering the list — and why the warning can appear while every row still says “pending”.
-
My scheduled actions are stuck in “pending” and never run. Is this the same problem?
-
Yes. “Pending” with a time in the past is exactly what past due means. Either nothing is starting the queue (usually WP-Cron) or the queue starts and the jobs fail. The plugin tells you which.
-
WooCommerce Subscriptions renewals are not processing. Is this the cause?
-
Often. Renewals run as
woocommerce_scheduled_subscription_paymentactions. If the queue stops, renewals quietly stop with it. The grouped table shows how many renewals are waiting and how late the oldest one is. -
I set DISABLE_WP_CRON. What else do I need?
-
A real server cron job that requests wp-cron.php every few minutes. Without one, nothing runs Action Scheduler at all. The plugin detects this case and says so; your host’s control panel usually has a “Cron Jobs” section for the job.
-
My Action Scheduler table has millions of rows. Can this help?
-
Yes. The plugin avoids full scans on very large tables and reports what it can safely count. For a huge backlog of one hook, “Cancel backlog” clears it without touching other plugins’ jobs.
-
I clicked “Run the queue now” and it cleared everything. What was wrong?
-
Your jobs are fine and nothing is triggering the queue automatically. Look at the WP-Cron check on the same page — usually WP-Cron is disabled and no server cron job replaced it.
-
I clicked it and nothing cleared. Now what?
-
The actions are failing rather than waiting. Check which hook has failures in the table, then look at that plugin’s support forum or error log.
-
Is the free version limited on purpose?
-
No. The free version diagnoses the cause, groups the backlog by hook, names the plugin responsible, runs the queue, retries failures, cancels safely, and emails you daily when the backlog grows. Pro adds hourly checks, Slack and webhook alerts, a history of the backlog and unattended retrying.
-
Do I need WooCommerce?
-
No. Action Scheduler ships inside several plugins, and this works with any of them.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“StallRadar Past-Due Monitor for Action Scheduler” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “StallRadar Past-Due Monitor for Action Scheduler” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.3.4
- Now works on WordPress 6.5 and newer (was 7.0), so stores that have not updated yet can use it.
1.3.3
- Pro: activating a licence now opens the plugin’s page instead of a “not allowed” error left over from the old name.
1.3.2
- First public release on WordPress.org.
- Fixed a “translation loading triggered too early” notice with WooCommerce and WP_DEBUG on. The alert check is now scheduled on init instead of plugins_loaded.
1.0.0 – 1.3.1
- Development before the public release: the diagnostics, the repairs, the daily email, and a name that follows the plugin directory’s naming guidelines.
