WooCommerce Subscriptions: why renewal payments fail
Subscription revenue feels automatic until renewals start failing. Unlike a broken checkout, nobody is on the page to notice: the renewal simply does not happen, and the subscription slides to on-hold.

How renewals run
Renewals are scheduled actions: at the due time, Action Scheduler creates a renewal order and asks the gateway to charge the saved payment token. The Subscriptions documentation describes the lifecycle and retry rules.
If the scheduler does not run, renewals do not happen at all. If it runs but the charge fails, the renewal order fails and retry rules take over.
Common causes
Expired or replaced cards, which retries and dunning emails should handle. Gateway changes — switching plugins, reconnecting an account, changing live keys — that invalidate saved tokens. Strong Customer Authentication requests for off-session payments. A gateway plugin update that changes how renewals are processed.
Moving a site between domains or hosts can also trigger staging mode, where the plugin deliberately stops charging.
What to watch
Track renewals due versus renewals paid each day, and alert when the gap grows. Watch past-due scheduled actions for the renewal hook.
Keep testing new sign-ups too: a new subscription runs through the normal checkout, so a failing gateway usually hits both at once.
Check your own store now with the free WooCommerce checkout checker: it walks the checkout in a real browser and shows the step where it stops.
Common questions
How do WooCommerce subscription renewals run?
Action Scheduler creates a renewal order on the due date and charges the saved payment token through the gateway.
Why do renewal payments fail?
Expired or replaced cards, tokens lost after a gateway change, 3-D Secure on off-session payments, or Action Scheduler not running.
How do I spot failed renewals early?
Watch the count of failed and on-hold renewal orders per day, and past-due scheduled_subscription_payment actions.