TL;DR: Stop sending to the list and validate it before the next run - a spike of 550 5.1.1 means the addresses do not exist, and continuing to send tanks the sender reputation. Verify each address (syntax plus a mailbox check), suppress the dead ones permanently, and find where the bad addresses entered the list so it does not refill with junk.

```text
550 5.1.1 "recipient address rejected"
```

1. Pause the outreach run and pull the bounce records: group the 5.1.1 bounces by address and by list source. Expected: you see which addresses bounce and which source contributed most of them.
2. Check a sample of the bouncing addresses by hand: look for typos, truncated domains, and role-looking guesses. Expected: a clear pattern (bad scrape, stale export, typo cluster) emerges.
3. Run the full list through an email validation service (syntax, domain, and mailbox checks) before the next send. Expected: every address gets a verdict of valid, risky, or invalid.
4. Suppress every hard-bouncing address permanently: add them to the suppression list so no future campaign can select them. Expected: the suppression list grows by the bounce count and the list shrinks to verified addresses.
5. Fix the intake: validate addresses at collection time (scrape, form, or import) so dead addresses never enter the list again. Expected: the next list import carries a validation timestamp per address.

## Use this when
- 550 5.1.1 bounces spike during an outreach run
- The list came from a scrape, an old export, or an unchecked import
- Bounce rates are climbing run over run

## Not for this skill when
- The bounces are 4xx temporary failures (those are deferrals, not dead addresses - wait and retry)
- The rejection is 5.7.1 content-based (the message is the problem, not the address)
- A single address bounces (check that one address; this skill is for list-level rot)

## Variant phrasings
- SMTP 550 recipient address rejected bulk
- diagnosing dead email list outreach
- 5.1.1 user unknown spikes in cold outreach

## Why it happens
550 5.1.1 is the receiving server saying the mailbox does not exist. Lists rot: people change jobs, domains die, scrapes capture truncated or guessed addresses. An agent that never validates what it collected keeps mailing a growing pile of dead addresses, and receivers read the bounce rate as a spammer signal.

## Edge cases
- A domain-wide 5.1.1 spike can mean the whole domain is gone (company shut down or renamed); suppress the domain, not just the addresses.
- Catch-all domains accept everything at SMTP time and bounce later; a mailbox check that only tests the domain will call them valid.
- Never re-add suppressed addresses on a list refresh; dedupe every import against the suppression list first.

## Provenance

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