Fixing Runaway WordPress Action Scheduler: Stop Gigabytes of Log Bloat
If your WordPress site suddenly starts dragging, your database balloons in size, or your host sends you a warning about excessive queries, there’s a good chance the culprit is hiding in plain sight: Action Scheduler.
This background task runner powers WooCommerce, subscription plugins, backups, and countless other tools. When it behaves, it’s invisible. When it breaks, it can hammer your database every few seconds and generate gigabytes of log entries before you even know what happened.
That’s exactly what happened to one of my sites — and here’s how I fixed it.
Action Scheduler Running Every Few Seconds
I noticed my site was slowing down and the database size was exploding.
After digging into the server metrics, I found that the Action Scheduler was firing nonstop, sometimes multiple times per second. Each run logged new entries, and the logs piled up fast.
Even after clearing scheduled actions, the problem persisted. Something deeper was stuck.
Root Cause: Corrupted Action Scheduler Schema Values
After researching the issue, I discovered that the Action Scheduler stores its schema version and migration status inside the WordPress options table.
If these values become corrupted or stuck, the scheduler repeatedly attempts to “upgrade” itself — and never succeeds. That endless loop is what floods the database.
Fix, Reset Action Scheduler Database Schema
Should be obvious; begin with a full site backup (including database) prior to attempting this fix.
To break the Action Scheduler infinite log loop, I had to manually reset several entries in the WordPress database. If you’re comfortable working in phpMyAdmin or a similar tool, the process is straightforward. If you need help, reach out to me and I would be happy to assist.
- Open your WordPress database and go to the wp_options table (your table prefix may differ)
- Locate and empty the following option values, these store the schema version numbers so clearing them forces Action Scheduler to rebuild cleanly:
- schema-ActionScheduler_StoreSchema
- schema-ActionScheduler_LoggerSchema
- action_scheduler_migration_status
- Search for any additional Action Scheduler entries using a wildcard search:
- %actionscheduler%
This resets any stuck migration attempts.
What Happens Next?
Once these values are cleared, Action Scheduler will rebuild its schema the next time it runs. In my case, the runaway loop stopped immediately, database activity normalized, and the log tables stopped growing.
If you’re using WooCommerce or plugins that rely heavily on scheduled actions, everything should continue functioning normally after the rebuild.
Conclusion
This issue can be frustrating — especially when it silently consumes gigabytes of storage and slows your site to a crawl. But the fix is surprisingly simple once you know where to look.
If you’re dealing with:
- nonstop Action Scheduler runs
- massive log table growth
- unexplained database bloat
- stuck WooCommerce background tasks
Checking these schema values in your wp_options table is a smart first step.
If this helped you, or if you ran into a variation of this issue, feel free to share your experience. The more we document these quirks, the easier we make life for the next WordPress admin who hits the same wall
You may support my work and future improvements by sending me a tip using your Brave browser or by sending me a one time donation using your credit card.
Let me know if you found any errors within my article or if I may further assist you by answering any additional questions you may have.




