Why Was a Cancelled WooCommerce Subscription Charged?

A cancellation request arriving just after a renewal charge already began processing

Why This Happens

Cancelling a subscription changes its status so that no future renewal gets scheduled — but if a renewal was already due and Action Scheduler had already picked it up for processing before the cancellation request went through, that specific charge can still complete. Outside of that timing overlap, a charge after what looks like a successful cancellation usually means the cancellation didn't actually take effect the way the customer (or the store) assumed it did.

Common Causes

  • Timing overlap with an already-queued renewal, as described above — more likely on sites with infrequent cron runs, where a backlog of due actions can process in a burst.
  • Cancellation request failed silently. A plugin conflict, a JavaScript error on the My Account page, or an AJAX request that didn't complete can leave a customer believing they cancelled when the subscription is still active.
  • Cancelled the wrong subscription, if the customer has more than one and didn't realize the charge came from a different one they didn't intend to touch.
  • Confusing "pending cancellation" with immediate cancellation. The default behavior keeps a subscription active (and billable, if the cancellation date lands on a renewal) until the end of the current paid period — not a bug, but worth confirming this is actually what happened rather than a genuine failure.
  • A caching or session issue showing the customer a stale "cancelled" confirmation page while the underlying request didn't actually process.

How to Fix It

  1. Check the subscription's status and order notes directly in WooCommerce admin — the notes log exactly when a cancellation request was received and processed, if it was at all.
  2. Compare the cancellation timestamp against the renewal's scheduled time in Action Scheduler to check for a genuine timing overlap.
  3. If the cancellation request never actually saved, test the cancel flow yourself to reproduce the failure, checking for JavaScript console errors or a plugin conflict on the My Account page.
  4. Refund the erroneous charge if the cancellation should clearly have prevented it, and cancel the subscription properly to stop it recurring again.

See WooCommerce fixes if this is happening to multiple customers rather than a single timing edge case — that pattern points at a real bug in the cancellation flow worth fixing at the source.

Available for new projects

NEXT STEP

Rather have it fixed than keep reading?

Based in Bangladesh — serving clients worldwide. Tell me what's happening and you'll have a reply within one working day.

  • Reply within one working day
  • Fixed quote before work starts
  • UK, EU and US hours covered