Why Shopify subscription payments fail โ€” and what actually recovers them

Moorly guides ยท Updated August 2026 ยท 7 min read

If you run subscriptions on Shopify, some of your renewals are failing right now. Not because customers decided to leave โ€” because a card expired, a balance was low on billing day, or a bank hiccuped for a second. The industry calls this involuntary churn. For most merchants it is the single largest churn source they have never looked at โ€” and the only way to know its size in your store is to count last month's failed renewals.

The frustrating part: a failed renewal doesn't come to you. Your customer might get an automated email. Almost nothing about the individual failure reaches you unless you built it โ€” Shopify Flow has a “Subscription billing attempt failure” trigger you can wire to an internal email, and Appstle's Results tab shows you the aggregate when you open it. The Flow workflow is something you have to build, and neither classifies the failure by reason or puts a number on what the unrecovered ones were worth.

The three failure families (and why they need different treatment)

Payment failures look identical on a dashboard โ€” a renewal that didn't go through. Underneath, they split into families that behave completely differently:

This is why a fixed retry schedule โ€” "retry 3 times, 2 days apart", which is what most built-in dunning offers โ€” leaves money behind. It over-retries dead cards, under-times the recoverable ones, and emails people who did nothing wrong.

Why merchants don't notice the leak

Voluntary churn is loud: a customer clicks cancel, and every subscription app counts it. Involuntary churn is silent by design. Three things hide it:

A practical checklist

  1. Measure before you change anything. Pull last month's renewals and count failures by reason. If your subscription app can't show that, that gap is itself the finding. (Our 30-second calculator gives you a first estimate.)
  2. Separate dead cards from soft declines. Their fixes are opposites โ€” card-update requests vs. better-timed retries.
  3. Check your dunning settings. How many retries, at what spacing, and what happens on exhaustion? Auto-cancel on exhaustion silently converts recoverable failures into churn.
  4. Mind the double-retry trap. If you add recovery tooling on top of your subscription app's own retries, make sure they coordinate โ€” double charging a customer is worse than the failure was.
  5. Track recovered dollars, not open rates. The only number that matters is payments that actually cleared after an action โ€” and whether that action can prove it.

Where Moorly fits: Moorly sits on top of Appstle or Seal, records each failed renewal with its decline reason, emails you a weekly recovery summary, and โ€” only when you switch actions on โ€” works each failure with the treatment that fits it. It starts read-only, so your first weeks with it are simply finding out what failures cost you. Join the early-access list โ†’

Further reading

Running Appstle? See the companion guide: Failed payment recovery for Appstle Subscriptions merchants.