## TL;DR

The dunning agent kept emailing a hard-bounced address because nothing processed bounces: every send after the first bounce was wasted and hurt sender reputation. Wire bounce webhooks into the dunning loop: on a hard bounce, suppress the address immediately and route the account to another contact channel; on soft bounces, retry with a cap. Never let the sequence run blind.

```text
agent's dunning sequence kept emailing a bounced address: no bounce handling
```

## Use this when

- A dunning sequence keeps emailing a bounced address
- Bounce webhooks are not wired into the agent loop
- Sender reputation is degrading

## Not for this skill when

- Emails go to spam without bouncing (deliverability, not bounce handling)
- The address is valid but the customer ignores the emails
- You are debugging the initial dunning setup

## Steps

1. Confirm the pattern: find the bounced address and count the sends after the first bounce.
   Expected: The waste is quantified.
2. Subscribe to your email provider's bounce webhooks (hard and soft distinguished).
   Expected: Bounce signals reach your system.
3. On a hard bounce, suppress the address from all sequences immediately and flag the account.
   Expected: No more sends to the dead address.
4. On soft bounces, allow limited retries with backoff, then suppress.
   Expected: Transient issues get a chance; permanent ones do not.
5. Route the account to an alternate channel: phone, in-app notice, or a different contact.
   Expected: Collection continues another way.
6. Add a pre-send suppression check to the dunning loop.
   Expected: Bounced addresses can never re-enter.

## Tool compatibility

Email provider bounce webhooks (SendGrid, Postmark, SES); dunning and collections sequences.

## Variant phrasings

### dunning emails bounced address suppression

The fix phrased as a mechanism.

### agent dunning no bounce handling

The missing-guardrail phrasing.

### hard bounce suppress dunning sequence

The action-first phrasing.

## Why it happens

Email providers distinguish hard bounces (the address is dead) from soft bounces (temporary failure), and they expect senders to act on the distinction: continuing to mail hard-bounced addresses is the fastest way to destroy sender reputation, which then hurts deliverability for every other customer. A dunning agent without bounce handling will happily send the 2nd through 20th reminder to an address that died on the first. The bounce webhook is the feedback channel that closes the loop; suppression is the guardrail that makes the loop safe.

## Edge cases / pitfalls

- Suppression must be per-address, not per-account, or you will silence valid contacts at the same company.
- Some bounces are misclassified; a periodic re-validation pass can resurrect wrongly suppressed addresses.
- Human review: accounts suppressed on all channels need a person to decide next steps.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_pJJjdcvfcW4WhhPan4q9kA
