WORDPRESS
Action Scheduler Past-Due and Failed Actions: A Safe WordPress Troubleshooting Guide
Learn to separate ordinary scheduling delays from a growing Action Scheduler backlog, inspect logs and queue signals, and avoid risky automatic fixes.

Seeing a growing number of overdue or failed Action Scheduler jobs in WordPress does not automatically mean your site is broken. The most useful first step is to distinguish routine scheduling delay from a queue that is genuinely failing to make progress—before you rerun, delete or reschedule anything.
Triage overdue or failed scheduled actions
Applies when: The WordPress Scheduled Actions screen shows overdue or failed jobs, but you do not yet know if the queue is unhealthy.
Quick answer
Look at the trend, not just the overdue count. A small delay can occur with traffic-triggered WP-Cron. A growing backlog or repeated failures for one hook calls for targeted investigation. Do not bulk rerun or delete jobs without checking side effects.
What to do
-
Note the oldest overdue timestamp, recent completions, recurring failing hook names and the related action logs.
-
Compare the queue after a normal execution interval. If nothing completes, inspect the runner and cron triggers before changing concurrency.
Which queue pattern do you see?
All paths are listed below. Select a symptom to focus on the most relevant path.
First check whether delay is temporary
Compare scheduled time with the next normal runner execution and verify that newer actions continue to complete. A small overdue count alone is not proof of failure.
Investigate the execution chain
Confirm WP-Cron triggering, the Action Scheduler runner, loopback requests and the site's processing capacity. Identify the failed gate before increasing throughput.
Inspect that hook's logs and owner
Review the failed action's exception or timeout and the plugin that registers the hook. Retrying may duplicate emails, payments or external operations.
Did this help?
What does “past-due” mean?
Action Scheduler is a background job queue used by WordPress plugins, including WooCommerce extensions. Jobs may be pending, in progress, completed or failed. Past-due describes a scheduled action whose planned run time has already passed. The Action Scheduler project’s FAQ explicitly notes that some past-due actions are normal with WordPress’ traffic-driven cron system.
The pattern matters more than a single count: is the oldest past-due action steadily aging, are new jobs being created faster than they complete, and are failures concentrated in one hook? Several actions more than a day overdue deserve closer investigation, but the severity depends on the workflow affected.
First: inspect the queue without changing it
- In the WordPress administration area, open Tools → Scheduled Actions; on WooCommerce sites the screen is also available through WooCommerce → Status → Scheduled Actions.
- Review pending, failed and in-progress actions separately. Record the scheduled time, hook name, group and oldest overdue item.
- Open a failed action’s log. Look for a reproducible exception, timeout or missing callback rather than assuming every failure shares one cause.
- Check whether a particular hook or plugin dominates the backlog. The hook is a clue to possible ownership, not always proof of which component caused the failure.
- Review WordPress Site Health, cron trigger behavior and relevant server logs before taking corrective action.
Three common patterns to differentiate
1. A few recent overdue actions
Some scheduling delay can be normal, particularly on low-traffic sites with traffic-triggered WP-Cron. Watch whether the queue catches up rather than interpreting each overdue item as an incident.
2. A backlog that keeps growing
Investigate whether the queue runner is being triggered, whether loopback requests are restricted and whether jobs are taking longer to process than their arrival rate. Check hosting resource limits. Do not increase runner concurrency blindly: the Action Scheduler performance documentation warns that excessive parallel processing can overload a site.
3. Repeated failures for one hook
Start with that action’s logs, the related plugin’s settings and any external dependency involved (API, network, database or credentials). Rerunning a failed job before understanding its side effects may duplicate emails, synchronize data twice or retry a payment workflow.
How ModelGain Queue Health can help
ModelGain Queue Health for Action Scheduler provides conservative, read-only diagnostics for overdue and failed actions, queue-runner indicators and likely callback ownership. It can produce a privacy-conscious support report for troubleshooting.
The plugin is intentionally not an automated repair or queue-mutating tool. It does not cancel, rerun or reschedule third-party actions, and its identification of a likely callback owner remains diagnostic evidence rather than a confirmed root cause.
If you decide to make an operational change later, use the related plugin’s documented recovery procedure, check for idempotent behavior, and take a verified backup first.
Frequently asked questions
Should I delete all failed actions?
No. Failed action records and logs can be the evidence needed to identify the issue. Deleting them is not a general solution to a queue runner or application error, and the cleanup behavior depends on your Action Scheduler version and configuration.
Does Action Scheduler require WP-Cron?
WP-Cron is commonly used to trigger it by default, but the project’s official FAQ states that Action Scheduler can be triggered in other ways. Diagnose your actual queue runner setup rather than assuming a single deployment model.
Is a past-due action the same as a failed action?
No. One is late relative to its scheduled time; the other has an execution failure status. They call for different investigations.
Sources and further reading
- Action Scheduler — Scheduled Actions Administration Screen (status, logs and administration navigation).
- Action Scheduler — FAQ (past-due actions and queue runner triggering).
- Action Scheduler — Background Processing at Scale (runner capacity, warnings and retention).
- ModelGain Queue Health — official WordPress.org listing (installation and release information).