do_not_honor After Retries: Stripe Subscription Fix
Root cause
The card issuer is returning a persistent do_not_honor code across multiple retry attempts, indicating the block is not transient — it may be due to the issuer's velocity limits being triggered by repeated retries or a standing restriction on the account.
Symptoms
- • Stripe returns decline_code: do_not_honor on every retry attempt, not just the first
- • The block persists beyond 48 hours with no change in outcome across retries
- • Recharge dunning is exhausting retry attempts with identical failures
- • Other customers with the same card network are not experiencing failures
How to fix it
Stop all retries after the third do_not_honor in 72 hours
Three do_not_honor failures in 72 hours signals a persistent issuer block, not a transient one. Further retries compound the problem — issuers track retry patterns and may extend blocks or flag your merchant ID for excessive retry behavior. In Recharge Admin, halt dunning for this subscription. In Stripe, cancel any Smart Retry schedule.
Email the customer to call their bank and update payment method
A persistent do_not_honor requires direct action from the customer. Email them: 'Your subscription payment has been declined by your bank. Please call the number on the back of your card to resolve the block, or update to a different payment method.' Include a direct Recharge portal link. The bank can usually resolve a persistent block by phone within minutes.
Set a 10-day window before cancellation
Give the customer 10 days — longer than the standard 7 — because resolving a bank block requires a phone call that some customers take time to complete. Send a day-5 reminder. If no update is received by day 10, cancel both the Recharge subscription and Shopify subscription contract. Resume the subscription with a new billing attempt once the customer confirms the block is cleared.
Frequently asked questions
How many do_not_honor retries are too many before stopping?
Three failures within 72 hours is the signal to stop. The first failure is expected — some do_not_honor codes resolve on the next day. The second attempt after 24 hours is reasonable. If the third attempt within 72 hours also fails with do_not_honor, the issuer has a persistent block and further retries will not succeed without customer action.
Can aggressive retrying cause a do_not_honor block to become permanent?
Yes. Some issuers escalate their decline response if they detect a merchant retrying a blocked transaction too aggressively. What starts as a temporary block can become a permanent one if retries continue. Stripe's own retry guidelines recommend stopping after 3–4 failed attempts — Recharge dunning should be configured to match this.
Detect this error automatically
Free cross-stack scan finds all billing errors in 60 seconds.
Run Free Scan →