A renewal didn't fire
A subscription was due to renew but no renewal order appeared. Walk through the five checks below in order — they are listed from most-likely cause to least-likely. In ~80% of cases the problem is the first or second one.
Check 1: Action Scheduler queue
Every renewal is an Action Scheduler job. Go to WooCommerce → Status → Scheduled Actions and filter by the search term aswc_scheduled_subscription_payment. You want to see a row for the subscription ID.
- No row at all — the renewal was never scheduled. Skip to check 3 (subscription status) or check 5 (master toggle).
- Row in status "Pending" with scheduled date in the past — the scheduler isn't running. Move to check 2.
- Row in status "Failed" — click the row to see the exception. Most common: gateway threw an error (move to check 4).
- Row in status "Complete" but no order created — rare. Check the subscription's note log; the job ran but a filter (
aswc_should_create_renewal_order) may have vetoed it.
Check 2: wp-cron is actually running
Action Scheduler piggybacks on wp-cron by default. On a low-traffic site, wp-cron only ticks when someone visits a page, so a renewal scheduled for 03:00 may not run until the next visit hours later.
- Set up a real OS cron job:
* * * * * curl -s https://your-store.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1 - Or use a managed-cron service (most WordPress hosts have one).
- Disable WP's built-in cron via
wp-config.php:define( 'DISABLE_WP_CRON', true );
Check 3: subscription status
Only subscriptions in status active are scheduled for renewal. Check the subscription detail page (admin or My Account):
on-hold— the previous renewal failed. Pay it manually or wait for the retry.paused— the customer or admin paused. Renewals are suspended until resume.cancelled/expired— terminal. No more renewals will ever fire.scheduled— the start date hasn't arrived yet. Check the Next payment date on the subscription.
Check 4: gateway connection
If the Action Scheduler job ran but the gateway call failed:
- Open WooCommerce → Status → Logs and filter for the gateway slug (
stripe,paypal,redsys,woocommerce-payments). - Look at the most recent error. Common causes: revoked PayPal billing agreement, expired card with no fallback, Stripe webhook secret rotated, Redsys SHA-256 key out of sync.
- Test the gateway with a one-off order. If a fresh purchase fails too, the issue is at the gateway level, not the subscription.
Check 5: plugin master toggle
The plugin has a global enable toggle at WooCommerce → Settings → Subscriptions → General — option aswc_gen_tab_enable. If it's off, no renewal logic runs even though Action Scheduler may still be queueing the jobs. Confirm it's on.
Relevant hooks
aswc_scheduled_subscription_payment— the Action Scheduler hook every renewal hangs off.aswc_renewal_payment_failed— fires on gateway failure; great place to ship to Sentry/Datadog.aswc_should_create_renewal_order— return false to veto a renewal (rare, but check it if you've added one).