Decline code
No Action Taken
`no_action_taken` is Stripe's decline code for a card declined for an unknown reason, and in practice it typically means the bank did not act on the authorization request, often because the request was incomplete or the bank's own processing system had an issue at that moment. This code isn't specifically named in Foxhound's decline classifier. It falls through to the classifier's default handling, which treats any unrecognized code as safe to retry, the same safe path that named network codes follow.
Why it happens
Recurring billing systems submit authorization requests automatically, and if any piece of that request is malformed, incomplete, or arrives while the bank's own systems are having a processing issue, the bank can respond by simply not acting on it rather than issuing a clear approval or denial. That's distinct from an active rejection: nobody at the bank looked at the request and said no. The request just didn't get processed. For a subscription renewal, this means a customer's healthy, funded account can still produce a `no_action_taken` decline purely because of a hiccup in how the request was handled on the bank's side.
How to fix it
Yes. Because the bank never actually acted on the request, there's nothing to reverse or correct, just a request that needs to be resent, ideally formed the same way and given a bit of time before the resend. Treating it as a hard decline would be a mistake given what the code actually describes. Inside Foxhound specifically, this code doesn't have a dedicated bucket in the classifier today, so it fails closed rather than retrying automatically: no repeat charge runs, and recovery goes straight to the same card-update email expired-card declines get. That email framing is an imperfect fit here since the card itself is usually fine, so treat the automated email as a safety-net nudge, and follow up directly on an account if the pattern repeats.
How Foxhound recovers it
This code has no dedicated bucket in the recovery engine's classification sets, so it fails closed rather than defaulting to a silent retry: no repeat charge runs against a code Foxhound cannot classify. Recovery goes straight to the same email sequence expired cards get, carrying the hosted card-update link, until this code earns its own bucket.
Questions
See what this looks like on your account
The free audit shows what Stripe already recovered and what is still dying, no signup required.
Run your free audit