WordPress cron events not running should be diagnosed from the exact affected system, not from a code or screenshot alone. Scheduled emails, cleanups or plugin jobs do not execute until a visitor opens the site. The goal is to identify the responsible layer, make one reversible change, and verify the original failing action again.
Symptoms: recognize the failure pattern
Look for whether the failure is repeatable, limited to a single device or account, or started after a specific change. These common scenarios lead to different remedies:
- WP-Cron traffic trigger is disabled or blocked.
- A real cron task points to an invalid path.
- Fatal errors or object cache lock scheduled hooks.
Evidence to save: exact error text, affected version/model, timestamp, and the most recent relevant change. A screenshot without the surrounding context can hide the distinction between a device fault, a configuration issue and a service outage.
Before changing settings: protect your data and access
Duplicate system cron and normal WP-Cron triggers can cause unintended repeated jobs. Keep the current configuration, installer or backup available wherever a rollback could be needed. If a device or service is managed by an organization, obtain authorization before modifying its policy or production configuration.
First safe comparison: Record the exact missed hook and latest scheduled timestamp using a trusted cron inspector. Then note the result before moving to another action. This isolates cause and effect instead of stacking changes that cannot be evaluated separately.
Step-by-Step Troubleshooting
Start with low-risk evidence and controlled comparisons. Use Advanced for logs, targeted configuration checks and authorized repair; complete each step only after verifying its result.
Record the exact missed hook and latest scheduled timestamp using a
Record the exact missed hook and latest scheduled timestamp using a trusted cron inspector.
Do this before changing settings; it provides the reference point needed to tell a real repair from a coincidental retry.
Check Site Health scheduled events and whether WP-Cron is intentionally
Check Site Health scheduled events and whether WP-Cron is intentionally disabled.
This comparison narrows the cause while keeping unrelated accounts, files and device settings unchanged.
Verify that site traffic or a hosting cron trigger is available
Verify that site traffic or a hosting cron trigger is available.
Write down the observed result and proceed only if the prior test gave a clear reason for this action.
Do not run a queue of payment or email jobs manually without checking
Do not run a queue of payment or email jobs manually without checking if they already executed.
If the test does not improve the original symptom, restore the previous state and use the Advanced tab for evidence-based diagnosis.
Check DISABLE_WP_CRON and the hosting scheduler configuration without
Check DISABLE_WP_CRON and the hosting scheduler configuration without changing both at once.
Record the exact timestamp and scope. The comparison is meaningful only if the same workload, user and target are involved; redact credentials or private records from collected logs.
Use WP-CLI cron event list under the correct site account to identify
Use WP-CLI cron event list under the correct site account to identify overdue hooks.
Compare the result against the baseline noted before changing settings. A log entry in isolation is not proof that it caused the user-visible failure.
wp cron event list --fields=hook,next_run,recurrenceInspect PHP error logs and Action Scheduler history around the missed
Inspect PHP error logs and Action Scheduler history around the missed hook.
Apply one authorized, reversible change supported by the evidence. Keep the original configuration or version available so that a failed test can be undone.
Configure one supported scheduling method, then observe that recurring
Configure one supported scheduling method, then observe that recurring tasks run once.
Repeat the original failure path and check for new errors. If evidence still points outside your access level, escalate rather than adding more speculative changes.
Diagnosis: distinguish the likely causes
The same visible failure can come from different subsystems. Use the table to decide what to inspect next; a possible cause is not a confirmed diagnosis.
| Possible cause | Evidence to collect | Decision |
|---|---|---|
| WP-Cron traffic trigger is disabled or blocked | Check Site Health scheduled events and whether WP-Cron is intentionally disabled. | Proceed only if that observation supports this cause. |
| A real cron task points to an invalid path | Check DISABLE_WP_CRON and the hosting scheduler configuration without changing both at once. | Proceed only if that observation supports this cause. |
| Fatal errors or object cache lock scheduled hooks | Use WP-CLI cron event list under the correct site account to identify overdue hooks. | Proceed only if that observation supports this cause. |
How to verify that the repair worked
Success criterion: The same scheduled hook executes at its next expected interval without duplicates. Do not declare success merely because one retry finishes; check the original operation under the same conditions that previously produced the failure.
- Repeat the exact failing action with the same authorized user, device or application settings.
- Check the relevant status, logs or user-facing result for the previously recorded signature.
- Repeat once after a normal restart or reconnect if that was part of the original failure pattern.
- Record what changed, the version or model involved, and the successful evidence.
Solution Checklist
If it still fails: rollback and escalation
If the test remains unchanged, stop applying unrelated fixes. Restore the last known working configuration and continue from the remaining evidence. For this issue, a useful next technical check is: Check DISABLE_WP_CRON and the hosting scheduler configuration without changing both at once. Provide a support technician with the sanitized exact error, reproduction steps and findings, rather than passwords or personal records.
How to prevent a repeat failure
Keep compatible software, firmware, drivers or service configuration under documented change control. The most useful preventive habit for this case is to preserve a known-good baseline so you can compare wp-cron traffic trigger is disabled or blocked with later behavior. Verify backup and rollback procedures before major upgrades.
Frequently asked questions
Does WordPress cron events not running have one universal cause?
No. For this issue, compare wp-cron traffic trigger is disabled or blocked against a real cron task points to an invalid path. Their evidence differs, so choosing a fix from the error name alone is unreliable.
Should I reset everything to solve this problem?
No. Duplicate system cron and normal WP-Cron triggers can cause unintended repeated jobs. Start with the Beginner checks and move to advanced diagnostics only when the evidence supports them.
How do I know the problem is actually fixed?
The same scheduled hook executes at its next expected interval without duplicates. Keep the result and the exact version information in your notes so future recurrences can be investigated more quickly.
Further reading: official documentation
- Official product or platform documentation — check the currently supported instructions for your exact version and device.
This guide prioritizes reversible diagnostic steps. Specific options and error meanings can differ by application version, device model and managed-environment policy; confirm current manufacturer guidance before potentially destructive work.
Disqus hosts the discussion. Comments load automatically as you approach this section and may use cookies.