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.

Back to decline codes
no_action_takenNo automatic retry
Draft content: this page's explanatory copy is Pass 3 template writing pending a dedicated content pass. The classification badge above and the recovery behavior described below are live, not draft: both come directly from the recovery engine.

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

  • Not exactly. It means the bank didn't act on the authorization request at all, often due to an incomplete request or a processing issue on the bank's side, rather than issuing an active rejection.

  • No. It isn't one of the codes the classifier explicitly recognizes, so it falls through to the classifier's unknown category, which fails closed: no automatic retry runs, and recovery goes straight to a card-update email instead.

  • Not risky exactly, but cautious. The classifier's default for an unrecognized code is to fail closed rather than retry it silently, which is a more conservative treatment than the named, provenly-retryable network codes get.

  • Not immediately. Since the request likely wasn't fully processed by the bank rather than actively denied, a retry is the appropriate first step, with customer outreach reserved for if retries don't succeed.

  • A hard decline reflects a definite, unretryable state of the account or card. `no_action_taken` reflects a request the bank never fully processed, which is why it's handled as retryable rather than final.

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