Recharge Billing Attempted on Paused Subscription
Root cause
Recharge's billing scheduler attempted to create a charge for a subscription that has PAUSED status — typically caused by a race condition between the pause and billing cycle events, an incorrect resume date calculation, or a manual admin action that reactivated billing without updating the subscription status.
Symptoms
- • Recharge attempts and fails a charge on a subscription the customer explicitly paused
- • The customer receives a payment failure notification for a subscription they thought was paused
- • Recharge subscription status shows PAUSED but a charge event exists in the charge history
- • The customer contacts support confused about why they were billed during a pause
How to fix it
Verify the subscription status in Recharge and confirm the pause
In Recharge Admin, open the subscription and confirm its current status is PAUSED. Check the subscription's charge history — locate the attempted charge and note its created_at timestamp. Compare this against the pause_until date: if the charge was attempted before the pause_until date expired, this is a billing logic error. If after, the subscription legitimately resumed and the charge is valid.
Refund any charge that was collected during an active pause
If the charge succeeded during an active pause period, issue a full refund immediately via Stripe Dashboard or Recharge Admin. Contact the customer proactively: 'We incorrectly billed you during your subscription pause. We have issued a full refund and corrected the error.' Do not wait for the customer to dispute — proactive refunds prevent chargebacks and preserve trust.
Audit your resume logic for the correct status transition
Review your subscription resume code. When a customer pauses a subscription, Recharge sets pause_until to a future date — the billing scheduler should respect this. Confirm that your integration does not call the subscription charge endpoint directly (bypassing Recharge's status check) and that the resume webhook correctly transitions status from PAUSED to ACTIVE before billing resumes. Add a status check gate: only allow charge creation for ACTIVE subscriptions.
Frequently asked questions
Can a race condition between pause and billing cause double billing?
Yes. If a billing cycle starts (Recharge begins creating the charge) at the same moment a pause is submitted via API, the charge may complete before the pause takes effect. Prevent this by implementing an idempotent pause lock: when a customer requests a pause, immediately update the subscription status to PAUSED via the API before acknowledging the pause — do not rely on asynchronous state propagation.
How does the customer's pause_until date interact with Recharge's billing scheduler?
Recharge's billing scheduler checks subscription status before creating each charge. A PAUSED subscription with a pause_until date in the future will not be billed. Once pause_until passes, Recharge automatically transitions the subscription to ACTIVE and resumes billing on the next scheduled date. If the resume results in a charge the customer did not expect, review how the resume date and next billing date are calculated.
Detect this error automatically
Free cross-stack scan finds all billing errors in 60 seconds.
Run Free Scan →