WooCommerce Orders Auto-Cancelling? Causes & Fix
Orders come in, sit on Pending payment, and then cancel themselves — often almost exactly an hour later, and often after the customer has already paid. This isn't WooCommerce misbehaving. It's a timer doing precisely what it was told. Here's how to find out what it's racing against.
Last updated: 16 Jul 2026 · ~6 min read
The most common cause is the hold stock window at WooCommerce → Settings → Products → Inventory → Hold stock (minutes), which defaults to 60. Any unpaid pending order older than that gets cancelled automatically — so if your gateway's confirmation is slow or broken, WooCommerce cancels the order before the payment news arrives. Fix the confirmation first; widen the window only as a stopgap.
What auto-cancelling actually is
When stock management is on, WooCommerce reserves stock for unpaid orders — but not forever. The Hold stock (minutes) setting decides how long. Past that, a scheduled job sweeps up pending orders created through checkout and cancels them, releasing the stock back to the shop. Default: 60 minutes.
That's sensible behaviour for abandoned carts, and quietly catastrophic when payment confirmation is delayed. The customer paid, their bank is happy, and their order says Cancelled — because from WooCommerce's side, nothing ever confirmed the money arrived, and the hour ran out. The timer isn't the bug. It's just the thing holding the knife.
The most common causes (most likely first)
- The hold stock window expires before the gateway confirmation landsThe order was paid, but the webhook or IPN was slow, retried, or arrived after the sweep. Tell: cancelled orders whose age at cancellation is suspiciously close to your hold stock value — and a successful charge sitting in the gateway dashboard for an order marked Cancelled.
- The confirmation never arrives at allA broken Stripe webhook or PayPal IPN means the order was never going to move off pending, and hold stock simply executes it on schedule. Tell: it's every order through one gateway, not the occasional one, and the gateway's webhook log shows failures.
- The payment method is legitimately slower than the windowDelayed and asynchronous methods — SEPA Direct Debit, iDEAL, Klarna, Multibanco, Boleto, bank transfer — can take hours or days to confirm. A 60-minute window guarantees they cancel. Tell: only certain payment methods are affected, and they cancel with mechanical regularity.
- Hold stock is set far too low, or overriddenSomeone set it to 5 or 10 minutes, or a plugin filters the value. Tell: orders die within minutes of checkout — far too fast to be a webhook race. Check the field itself before you check anything else.
- Something other than WooCommerce is cancelling themAbandoned-cart, order-cleanup, fraud-screening and inventory plugins all cancel orders on their own schedules. Tell: the order note names a plugin or a user rather than reading like WooCommerce's own automatic cancellation — and the timing doesn't match your hold stock value at all.
- A cron backlog fires the sweep in burstsWordPress cron only runs when the site gets traffic, so on a quiet store the cancel job can sit and then run late — cancelling a batch of orders in one clump. Tell: cancellations arrive in bursts rather than steadily, and
WooCommerce → Status → Scheduled Actionsshows overdue jobs.
Where to look first
- Open
WooCommerce → Settings → Products → Inventoryand read Hold stock (minutes). Note the number — it's the stopwatch every other clue gets measured against. - Open a cancelled order and compare its creation time to its cancellation time. Gap matching your hold stock value? That's cause 1, 2 or 3. Nothing like it? Something else is cancelling them (cause 5).
- Check your gateway dashboard for the same order. A successful charge behind a cancelled order means the customer paid and you must recover the order manually — and it confirms the race, not the timer, is the problem.
- Is it every order through one gateway, or occasional ones? Every order points at a dead webhook (cause 2). Occasional ones point at a slow one (cause 1). Only certain payment methods points at cause 3.
- Read the cancelled order's notes. WooCommerce's own automatic cancellation reads differently from a plugin's or a person's — the note tells you who pulled the trigger.
Don't want to find out from a customer whose paid order says "Cancelled"?
The nasty part is that hold stock is the symptom, not the disease — widen the window and you just move the failure an hour later. DiagnosticIQ's free dashboard checks the thing the timer is racing: whether your gateway's confirmations are actually arriving, and how long they're taking to get there. It names the gateway and the delay rather than leaving you to reverse-engineer timestamps out of cancelled orders. And it keeps watching, so a webhook that starts failing on a Friday doesn't cost you a weekend of orders.
Get the free plugin →Made by Prima Digital — the team behind this guide. Free forever; no card to install.
How to know you fixed it
Place a test order and leave it past your hold stock window — it should reach Processing on its own well before the deadline, and a full day should pass with no new automatic cancellations behind successful charges in your gateway dashboard.
Frequently asked
The order cancelled but the customer paid. What now?
Their money is safe — a cancelled WooCommerce order doesn't refund anything. Confirm the charge in your gateway dashboard, then set the order back to Processing manually and fulfil it. Then fix the confirmation, because it will happen again.
Should I just turn hold stock off?
It stops the cancellations, but it also means abandoned carts hold your stock indefinitely — which brings its own overselling problems. Treat it as a stopgap while you fix the gateway confirmation, not as the fix.
What's a sensible hold stock value?
Long enough to outlast your slowest legitimate payment method. If you accept delayed methods like bank transfer or SEPA, an hour is far too short — but the real answer is to stop relying on the timer to paper over a slow webhook.
Does cancelling an order restore the stock?
Yes — that's the whole point of the window. Which is why a wrongly cancelled paid order also quietly puts an item back on sale that you've already sold.