WooCommerce fixes / subscription stuck on hold

WooCommerce Subscription Stuck On Hold? Causes & Fix

An On-hold subscription is not a subscription that's about to recover. It's one that has stopped, quietly, and will stay stopped forever unless someone acts. Meanwhile the customer's role has been downgraded and their access is gone. Here's why, and how to restart it.

Last updated: 16 Jul 2026 · ~6 min read

Quick answer

The most common cause is that the failed-payment retries ran out. After the last retry, the renewal order goes Failed and the subscription drops to On-hold — and then nothing happens. Ever. Subscriptions applies the inactive subscriber role, Memberships revokes access, and there is no further automatic attempt. Recovery is manual: the customer pays the failed renewal order, which reactivates the subscription.

What On-hold actually means

On-hold is WooCommerce Subscriptions' way of saying "paused, pending money". It's used both deliberately (an admin or customer suspends it) and defensively (a renewal failed). The trap is that the defensive case has no exit. Once the retry rules are exhausted, nothing in the system will try that card again — the subscription simply waits, indefinitely, for a human.

You see a subscription that isn't cancelled, so it doesn't show up as churn. The customer sees their access disappear — the inactive subscriber role gets applied, and if you run Memberships the linked membership is paused with it. From their side that's indistinguishable from you cutting them off, which is why On-hold subscriptions turn into support tickets and refund requests rather than recoveries.

The most common causes (most likely first)

  1. The retries ran out and nothing tries againThere's a chain of failed renewal attempts ending in a Failed renewal order, then silence. The default retry rules make a handful of attempts over roughly a week; after the last one the subscription sits On-hold with no scheduled retry left. Check the subscription's related orders and its scheduled actions — nothing is queued. The #1 cause.
  2. Automatic retries are switched off entirelyOne failed renewal order and the subscription is On-hold immediately — no retry chain at all. Check the failed payment retry setting under WooCommerce → Settings → Subscriptions. With retries off, a single soft decline ends the subscription's life.
  3. The retries are scheduled but the queue isn't runningWooCommerce → Status → Scheduled Actions shows a retry action still Pending with a date in the past. The retry never fired because Action Scheduler isn't running — the subscription isn't out of chances, it's just waiting on a dead queue.
  4. The decline is permanent, so no retry could ever workEvery attempt returns the same hard decline at the gateway — expired card, lost or stolen card, account closed. Retrying a dead card just burns the retry chain. This one needs the customer to enter a new card; nothing on your side will fix it.
  5. The subscription has no usable payment methodThe renewal order is sitting on Pending payment rather than Failed, and the subscription's payment method is blank or shows manual renewal. Nothing was ever charged — the renewal is just waiting for the customer to pay it.
  6. Someone put it on hold deliberatelyNo failed renewal order anywhere in the subscription's history, and an order note recording a suspension by an admin or by the customer through My Account. Working as intended — it just needs reactivating.

Where to look first

How long has that subscription been on hold?

On-hold subscriptions don't alert you, don't count as cancellations, and don't appear in a churn report — they just stop paying. DiagnosticIQ's free dashboard surfaces every subscription sitting On-hold, tells you which of them ran out of retries versus which are stuck behind a stalled queue or a missing card, and flags new ones as they drop — while the customer still remembers subscribing.

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

Verify

The subscription flips back to Active on its own once the renewal order is paid, the next payment date moves into the future, and the customer's role returns to the active subscriber role (with their membership unpaused, if you run Memberships).

Frequently asked

Can I just set the subscription back to Active?

You can, and you shouldn't — it doesn't take the money. You'd have an Active subscription with an unpaid renewal order and a card that still doesn't work, and you'd find out again next cycle. Get the failed renewal paid instead; the status looks after itself.

Will the customer be charged twice if I retry?

Only if the earlier attempt actually succeeded and was recorded as failed. Check the gateway for a successful charge before retrying anything — if one is there, the renewal needs marking paid, not charging again.

Why did their access disappear?

A non-active subscription applies the inactive subscriber role from WooCommerce -> Settings -> Subscriptions, and WooCommerce Memberships pauses any linked membership. Both come back automatically when the subscription goes Active again.

Will it cancel itself eventually?

No. That's the problem. It stays On-hold indefinitely — no retries, no cancellation, no notification. It'll sit there for a year if you let it.

>_
John O'Keane — Founder, Prima Digital · LinkedIn
Contributions by David Zhang · LinkedIn
I build DiagnosticIQ, the WooCommerce diagnostic plugin, and I've found year-old On-hold subscriptions on stores that had no idea the revenue had stopped.