Bounce Codes Explained: What Your Failed Emails Are Telling You
Your ESP shows you that 3.2% of your last campaign bounced. That's all most marketers see - a single percentage. But buried in the delivery logs is specific diagnostic data that tells you exactly why each email failed and - more importantly - what to do about it.
SMTP bounce codes are the language that mail servers use to communicate delivery failures. Every bounced email comes with a code that categorizes the problem. Learning to read these codes turns bounce management from "delete the bad ones" into actual diagnostics that reveal patterns, identify root causes, and guide specific fixes.
How SMTP Bounce Codes Work
SMTP response codes follow a standard format: a three-digit code, often followed by an enhanced status code in X.X.X format. The first digit tells you the category:
2xx - Success. The email was accepted. You'll see 250 2.0.0 for a successful delivery. No action needed.
4xx - Temporary failure (soft bounce). The server rejected the email for now but might accept it later. Your ESP will typically retry these automatically over a period of hours or days.
5xx - Permanent failure (hard bounce). The email was permanently rejected. The address should be removed from your list. Don't retry - it won't work and repeated attempts damage your reputation.
Hard Bounce Codes: Remove These Immediately
Hard bounces are permanent delivery failures. Every hard bounce should result in the address being removed from your active list. Here are the most common ones:
| Code | Meaning | What It Tells You |
|---|---|---|
| 550 5.1.1 | Mailbox does not exist | Address is invalid - person left company, typo, or fake signup |
| 550 5.1.2 | Domain does not exist | The domain has no DNS records - company shut down or domain expired |
| 550 5.1.0 | Address rejected | Generic address failure - treat as invalid |
| 551 5.1.6 | Address has moved | Mailbox was migrated - the forwarding address may be provided |
| 553 5.1.3 | Invalid address syntax | Malformed email address - collection form didn't validate properly |
Action for all hard bounces: Remove immediately. Never retry. If you see a sudden spike in 550 5.1.1 errors, your list is decaying faster than expected - run a bulk verification to catch the rest before your next campaign.
Soft Bounce Codes: Monitor and Retry
Soft bounces are temporary. The email might be accepted on retry. Your ESP handles most retries automatically, but you should monitor these for patterns.
| Code | Meaning | What to Do |
|---|---|---|
| 421 4.7.0 | Connection rate limited | You're sending too fast - slow down or spread sends over time |
| 452 4.2.2 | Mailbox full / over quota | Retry later. If persistent across 3+ campaigns, treat as inactive |
| 450 4.1.1 | Mailbox temporarily unavailable | Server-side issue. Usually resolves on retry |
| 451 4.3.0 | Server temporarily unavailable | Receiving server is down. Will auto-resolve |
| 421 4.7.28 | Rate limit per IP | Gmail-specific throttling - reduce volume to Gmail addresses |
The 421 codes are especially important to watch. If you're seeing clusters of 421 errors from Gmail or Microsoft, those ISPs are throttling you. This happens when you send too much volume too fast, when your engagement rates are poor, or when your sender reputation is declining. It's a warning sign before things get worse.
Reputation-Based Rejections: The Serious Ones
These are the bounce codes that should make you sit up and pay attention. They indicate that your sender reputation or content is the problem, not the recipient address.
| Code | Meaning | Root Cause |
|---|---|---|
| 550 5.7.1 | Message rejected as spam | Content triggered spam filters or sender reputation is poor |
| 554 5.7.1 | Sending IP/domain blacklisted | You're on a DNSBL blacklist - check immediately |
| 550 5.7.0 | Authentication failure | SPF, DKIM, or DMARC not properly configured |
| 550 5.7.26 | DMARC policy rejection | Your emails fail DMARC alignment - fix authentication |
| 550 5.7.350 | Microsoft remote IP policy | Microsoft is blocking your IP based on reputation signals |
If you see 554 or 550 5.7.1 codes: Check your blacklist status immediately. These codes mean receiving servers are actively refusing your emails based on reputation. This affects all recipients at that ISP, not just the bounced ones.
If you see 550 5.7.0 or 5.7.26: Your email authentication is broken or misconfigured. Check SPF, DKIM, and DMARC records for your sending domain. Since Gmail and Yahoo's 2024 sender requirements, these authentication failures result in outright rejection rather than just spam folder placement.
Reading Bounce Patterns: What Clusters Tell You
Individual bounces happen. Patterns tell stories. Here's how to read the clusters:
Spike in 550 5.1.1 across your whole list: Your list is aging. Time for a bulk verification pass to catch all the addresses that went invalid since your last cleaning. This is the most common pattern and the easiest to fix.
421 errors concentrated at one ISP (usually Gmail): That ISP is throttling you specifically. Your engagement rates at that provider are probably low, or you've been sending too much volume too fast. Reduce your send speed, improve segmentation for that ISP, or spread sends over a longer window.
554 errors from multiple ISPs simultaneously: You've been blacklisted. Check Spamhaus, Barracuda, and SpamCop immediately. This is urgent - it affects your entire email program until resolved.
550 5.7.1 concentrated on a specific campaign: That specific email triggered spam filters. Review the content - look for spammy words, excessive links, poor text-to-image ratio, or a subject line that trips filters. The content is the problem, not the list.
452 errors from the same addresses repeatedly: Those mailboxes are abandoned. The person isn't checking that email anymore, so the mailbox fills up. After 2-3 consecutive soft bounces of this type, suppress the address. It's effectively dead.
Frequently Asked Questions
What bounce rate is considered too high?
Keep your overall bounce rate below 2% per campaign. Below 0.5% is excellent. Above 2% triggers ISP scrutiny. Above 5% will likely cause ESP intervention and deliverability problems. If you're consistently above 1%, schedule a bulk verification to clean your list proactively rather than waiting for bounces to tell you about invalid addresses.
Should I retry hard bounced addresses?
No. Hard bounces (5xx) are permanent by definition. Retrying wastes resources and signals to ISPs that you're not managing your list. Remove them on first occurrence. If you believe a hard bounce was an error (rare), you can verify the address through Bulk Email Checker's API to confirm before re-adding.
Why do different ESPs show different bounce categories?
ESPs interpret and categorize SMTP codes differently. Some classify a 550 5.7.1 as a "hard bounce" while others call it a "blocked" or "reputation" bounce. The underlying SMTP code is what matters. If your ESP gives you access to raw bounce codes in delivery logs, use those for diagnostics rather than the ESP's simplified categories.
Can email verification prevent bounces entirely?
Verification prevents the vast majority of bounces - specifically the 550 5.1.x (address/domain doesn't exist) codes that make up 60-80% of all bounces. It can't prevent server-side temporary failures (4xx) or reputation-based rejections (5.7.x), which are caused by sending behavior rather than address quality. But eliminating address-based bounces alone usually brings your bounce rate well under the 2% threshold.
Stop Bouncing. Start Converting.
Millions of emails verified daily. Industry-leading SMTP validation engine.