Bounced Email: What Each Bounce Code Means and How to Stop Them Killing Your Cold Email
A bounced email is the receiving server's way of saying 'I'm not delivering this.' For cold email, the difference between an acceptable bounce and a campaign-killer is the SMTP code. Here's how to read each one and what ColdRelay's infrastructure does to keep bounces below 1%.
A bounced email is what happens when a receiving mail server refuses to deliver your message. The bounce comes back with an SMTP code that tells you exactly why — and "why" is the difference between an acceptable bounce (the recipient doesn't exist anymore) and a campaign-killer (your sending IP just got blocklisted).
This guide is the canonical reference for cold email: what each major bounce code means, why cold email's bounce thresholds are stricter than marketing email's, and how ColdRelay's infrastructure prevents the bounce types that aren't list-quality problems.
The 30-second answer
| Bounce category | SMTP codes | What it means | Fix |
|---|---|---|---|
| Hard bounce — invalid recipient | 550, 551 | The address doesn't exist on the receiving server | Suppress the address; re-verify the list source |
| Hard bounce — domain doesn't exist | 550 (no MX) | The whole domain has no mail servers | Suppress and don't re-attempt |
| Soft bounce — mailbox full | 552 | Real mailbox, temporarily out of space | Retry over the next 24 hours |
| Soft bounce — rate limit | 421, 451 | Server is throttling your IP | Slow down volume; ColdRelay's 2/mailbox/day cap prevents this |
| Reputation bounce | 550, 554 with specific phrases | Receiving server doesn't trust your sender | Infrastructure problem, not list problem |
| Content bounce | 550 with "spam" or "abusive" wording | Message content triggered filter | Adjust subject line or body |
| Blocklist bounce | 550 / 554 referencing Spamhaus/Barracuda/etc. | Your IP is on a public blocklist | Check + delist immediately |
The TLDR: the SMTP code tells you what kind of bounce it is. Read the codes; don't lump every bounce into "list-quality problem." Each category has a different fix.
Hard bounces vs. soft bounces vs. everything else
The traditional dichotomy:
Hard bounce = receiving server says "this address will never accept mail." Permanent. SMTP code 5xx (typically 550, 551, 553). The mailbox is gone — recipient doesn't exist, account closed, domain dead.
Soft bounce = receiving server says "can't deliver right now." Temporary. SMTP code 4xx (typically 421, 451, 452). Mailbox is full, server is overloaded, or rate limit hit. Try again later.
In 2026 the line blurred because spammers exploit "soft" failures to mask sending to dead addresses. Gmail and Outlook increasingly return soft codes on addresses that are actually permanently dead, to slow spammers down. ColdRelay treats any address that returns three failures in a row (hard or soft) as effectively hard-bounced and auto-suppresses across all mailboxes in your workspace.
Beyond the hard/soft split, two more categories matter specifically for cold email:
Reputation bounce — the receiving server didn't reject the recipient (which exists fine); it rejected the sender. The bounce message references your sending domain or IP's reputation. This is an infrastructure problem, not a list problem.
Blocklist bounce — explicitly references a public DNSBL (Spamhaus, Barracuda, SORBS) in the bounce message. Your sending IP is listed; mail is being rejected wholesale. (Fix in the blacklist guide →)
Decoding the major SMTP bounce codes
550 — Mailbox unavailable (most common cold email hard bounce)
Variants:
550 5.1.1 The email account that you tried to reach does not exist(Gmail)550 5.1.1 User unknown(generic)550 No Such User Here
What it means: The exact address doesn't exist on the receiving server.
Cold email implication: Suppress the address immediately. If a meaningful percentage of your list returns this code, your data provider's accuracy is the problem — re-verify with a second provider before resuming.
550 — No MX records / domain doesn't exist
Variants:
550 5.1.2 The domain name in the email address could not be found550 No MX records for domain
What it means: The whole DOMAIN doesn't have working mail servers. Either the company shut down, the domain isn't actually theirs, or your data is corrupt.
Cold email implication: Suppress and don't re-attempt this domain across your workspace.
552 — Mailbox full
552 5.2.2 The user has exceeded their email storage quota
What it means: Real mailbox; recipient hasn't emptied it.
Cold email implication: Retry over 24-72 hours. ColdRelay's retry logic handles this automatically. If the mailbox stays full for >7 days, treat as effectively bounced — recipient isn't reading anyway.
421 — Service temporarily unavailable
Variants:
421 4.7.0 IP not in whitelist(anti-spam throttle)421 Try later(server overloaded)421 4.4.5 Server busy
What it means: Receiving server is throttling you. Could be rate limiting (sending too fast), reputation-driven (your IP looks suspicious), or actual server load (unlikely in 2026).
Cold email implication: If you're seeing 421s on more than a percent or two of sends, your IP's reputation is dropping. Pause and investigate. ColdRelay's 2-cold-sends-per-mailbox-per-day cap is set specifically to keep volume below the rate-limit threshold that triggers these.
451 — Temporary local error / greylisting
451 4.7.1 Greylisted, please try again later
What it means: The receiver is greylisting you — refusing first-time mail from unknown senders, expecting your server to retry. Legitimate retries within 5-15 minutes typically succeed; spammers don't bother retrying.
Cold email implication: Modern infrastructure handles this transparently. ColdRelay's retry logic resolves >99% of 451 deferrals on the first retry. You shouldn't see these in your reported bounce rate at all.
554 — Transaction failed (reputation-driven)
Variants:
554 5.7.1 Service unavailable; client ... blocked using Spamhaus554 5.7.1 Message rejected for policy reasons554 5.7.1 Sender denied
What it means: The receiving server has a specific policy against your sender — usually your IP is on a blocklist, your domain reputation is bad, or your content triggered a filter.
Cold email implication: Stop sending immediately. Identify the cause:
- Spamhaus mention → check + delist on Spamhaus
- Barracuda mention → Barracuda removal form
- Generic "policy reasons" → likely reputation-driven; let domain reputation recover via reduced-volume + clean list
Out-of-office auto-replies
Don't count these as bounces. They're DELIVERIES (the recipient just isn't reading right now). Most cold email tools categorize them separately; if yours doesn't, your bounce rate will look artificially inflated.
Why cold email's bounce threshold is so strict
Marketing email tolerates 2–3% bounce rate indefinitely because providers know the list is double-opt-in and the relationship is consensual. Bounces look like normal list churn.
Cold email's tolerance is much lower:
| Bounce rate | Cold email impact |
|---|---|
| Below 1% | Healthy, sustainable. Aim for this. |
| 1–2% | Acceptable but should trigger a list-quality review |
| Above 2% | Domain reputation will degrade within days |
| Above 5% | Critical — pause sending immediately |
| Above 10% | Domain is essentially dead for cold email |
The reason: when Gmail sees cold email (no prior opt-in) at 2% bounces, the inference is "this sender bought a list and didn't verify it." Same 2% on marketing email reads as "stale double-opt-in list, sender is legitimate." Same number, different interpretation, different reputation outcome.
Full breakdown of cold email bounce rate thresholds →
What drives each bounce type (and how to fix it)
Invalid-recipient bounces (550 mailbox unavailable): Almost always list-source quality. Fix by:
- Verifying every address with ZeroBounce / NeverBounce / MillionVerifier before sending
- Re-verifying enriched data from Apollo / ZoomInfo / Clearbit on the long tail
- Dropping pattern-guessed addresses (no real verification step)
- Re-verifying any contact > 12 months old
Domain-doesn't-exist bounces: Bad data sources. Same fix as above + manual review of suspicious-looking domains before adding to lists.
Mailbox-full bounces: Mostly benign. Track separately from real bounces.
Rate-limit bounces (421): Volume-driven. Reduce per-mailbox sending rate. ColdRelay's 2-per-mailbox-per-day cap eliminates this category — the cap is below every major provider's rate threshold.
Reputation bounces (554): Infrastructure problem, not list problem. Fix:
- Check your IP on a blacklist scanner
- Check your domain reputation in Google Postmaster Tools
- Pause sending and let reputation recover over 7-14 days at reduced volume
- Move to dedicated infrastructure if you're on shared IPs (why shared IPs cause this →)
Content bounces: Less common in cold email than in marketing email. Usually triggered by:
- Spam-trigger words in subject line ("free", "guarantee", "risk-free", excessive ALL CAPS, multiple exclamation marks)
- Specific spam patterns in body (URL shorteners pointing to known spam destinations, suspicious attachment types)
- Fix: rewrite subject line, audit links, remove anything that looks like a marketing-blast template.
How ColdRelay's infrastructure prevents bounce-rate spirals
Four design choices:
1. Pre-send SMTP verification on every recipient. Before the first send to any address, ColdRelay's SMTP layer verifies the receiving server accepts mail for that address (RCPT TO check). Addresses that fail get auto-marked invalid and never receive a real send. This catches most invalid-recipient bounces before they hit your bounce rate.
2. Auto-suppress on first hard bounce. A hard-bounced address is suppressed across every mailbox in your workspace immediately. You don't accidentally send to the same dead address from a different mailbox later in the week.
3. Workspace-level bounce-rate monitoring. If your rolling 7-day bounce rate exceeds 1.5%, sending automatically pauses and we require a list-quality review before unblocking.
4. Volume cap of 2 cold sends per mailbox per day. Below every major provider's rate-limit threshold. Rate-limit bounces (421) become structurally impossible at this cadence.
The cap is the most counter-intuitive: every new customer asks why we don't let them send more. The answer is the math — at higher volume, complaint rate spikes linearly, bounce rate creeps up from reputation drops, and the next thing you're looking at is 421s and 554s. Two per mailbox per day is the volume that keeps Postmaster Tools Domain Reputation pinned at High over multi-month campaigns.
FAQ
My bounce rate is 4% — what should I do?
Pause campaigns on the affected domain. Identify the contact source producing most bounces. Re-verify before resuming. If you keep sending at 4%, expect your Postmaster Tools Domain Reputation to drop from High to Medium within a week — at which point inbox placement starts declining and reply rates follow.
Do soft bounces count toward my bounce rate?
Depends on your sending tool. Most modern tools count only persistent failures (3+ retries failing) toward bounce rate, which is the right approach. If yours counts every soft bounce immediately, your reported number will look worse than reality. ColdRelay's bounce categorization treats 3-consecutive-failures as bounced regardless of soft/hard code.
Why am I getting bounces from addresses I just verified?
Several reasons:
- Verification accuracy isn't 100% (95–98% is the industry best). Long-tail data has more misses.
- The address might be on a catch-all domain — verification passes but real-world delivery fails
- The mailbox got disabled between verification and send (especially long-cycle enrichment data)
- Reputation-driven rejections look like address bounces but aren't (the mailbox exists; the receiver doesn't trust your sender)
What's the difference between a "rejected" message and a bounced one?
Rejection = receiving server refused at SMTP layer (during the initial connection, before accepting the message). Bounce = receiver accepted the message, then later returned a delivery failure. From the sender's POV they look the same. From a deliverability-diagnostic POV, rejections at SMTP time tend to be reputation/blocklist-driven; bounces accepted-then-returned tend to be address-quality issues.
Should I retry hard bounces ever?
No. Hard bounce = permanent failure. Retrying a hard bounce signals "we don't verify our list" to inbox providers. Suppress the address immediately and don't re-attempt.
ColdRelay says my mailbox is healthy but I'm getting bounces — what gives?
ColdRelay verifies the address exists when you push it to a campaign. If bounces still happen post-push, it's usually one of:
- The address went dead between push and send (contact left the company, etc.)
- The receiving server has a temporary issue
- Your bounce rate was already trending up before the verification step caught up — back-pressure from earlier bad data
Check the bounce-rate dashboard at the per-domain level to localize the issue.
Bounces are mostly a list-source problem. ColdRelay's infrastructure prevents the rate-limit and reputation-driven categories that aren't list problems, but list hygiene is on you — and the platform makes it harder to wreck things by accident.
Infrastructure that pauses itself when your bounce rate goes bad → Try ColdRelay free · Test your sending IP for blocklist issues → Free blacklist check