Debugging a stuck Action Scheduler queue

Late emails and lagging syncs often point to a stalled Action Scheduler queue. Here is how to find it.

Hamid Aarab Senior WordPress and WooCommerce Backend Developer
Published
Reading time
1 min read

Hamid Aarab February 3, 2026 1 min read

تصویر پیکسلی یک صف از کارها پشت یک مانع
Contents (4)

Action Scheduler runs background work for WooCommerce and many plugins. When its queue falls behind, the symptoms are scattered: late emails, subscriptions that don’t renew, and syncs that are hours behind.

Check the state of the queue

Under Tools → Scheduled Actions, filter for pending actions with past dates. If that number keeps growing, the runner can’t keep up.

Run it manually, in small batches

wp action-scheduler run --batch-size=50 --batches=10
wp action-scheduler run --hooks=woocommerce_deliver_webhook_async

Running the queue from WP-CLI removes the dependency on WP-Cron and site traffic, and shows errors directly in the terminal.

Common causes

  • WP-Cron is disabled and no real server cron is configured.
  • One action throws a fatal error and is re-queued every time.
  • The actionscheduler_* tables are bloated with millions of old rows.

Deleting rows straight from the tables without understanding dependencies can leave an order or subscription half-processed. Find the cause first.

Prevention

A real server cron running wp cron event run --due-now every minute, plus periodic cleanup of completed actions, keeps the queue healthy.

$ ./request_review

Facing the same problem in your own store?

Senior WordPress and WooCommerce backend engineering for complex production problems.

Request a Technical Assessment

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *