When an email fails to deliver, your email service provider (ESP) reports it back as a bounce. But not all bounces are created equal. Understanding the difference between a hard bounce and a soft bounce determines what you should do next — and getting this wrong is one of the fastest ways to damage your sender reputation.
What is a hard bounce?
A hard bounce is a permanent delivery failure. The message cannot be delivered now or in the future for a definitive reason:
- The email address does not exist
- The domain has no mail servers (no MX records)
- The receiving server has permanently blocked your sender
Hard bounces generate SMTP 5xx response codes. The most common is 550, particularly with enhanced status code 5.1.1 ("Bad destination mailbox address"). When you see this, the address is definitively invalid.
How to handle hard bounces
Remove the address from your list immediately and permanently. Do not retry. Sending again to a known-invalid address signals to inbox providers that you are either ignoring bounce feedback or have poor list hygiene — both reduce your sender score.
Most reputable ESPs automatically suppress hard-bounced addresses, but you should also remove them from any other lists or CRM records to prevent them surfacing in future sends.
What is a soft bounce?
A soft bounce is a temporary delivery failure. The address is valid, but delivery could not be completed right now:
- The recipient's mailbox is full
- The receiving server was temporarily unavailable
- The message was too large
- The receiving server is rate-limiting your connection
Soft bounces generate SMTP 4xx response codes. Common codes include 421 (service temporarily unavailable) and 452 (insufficient storage).
How to handle soft bounces
Your ESP will typically retry delivery automatically according to a retry schedule — usually over 24–72 hours. Most soft bounces resolve themselves without any action on your part.
However, if an address consistently soft-bounces over multiple send cycles, treat it as a de facto hard bounce and suppress it. A mailbox that is perpetually full is unlikely to be actively monitored.
Quick reference
| | Hard bounce | Soft bounce | |---|---|---| | SMTP codes | 5xx | 4xx | | Example codes | 550, 551, 553 | 421, 450, 452 | | Cause | Permanent — address doesn't exist | Temporary — server/mailbox issue | | Action | Remove immediately | Retry; suppress after repeated failures | | Retry? | Never | Yes, automatic |
SMTP bounce codes in detail
Understanding the SMTP codes helps you interpret bounce data from your ESP more precisely.
Hard bounce codes (5xx)
550 — No such user here / Requested action not taken The most common hard bounce code. The mailbox does not exist at the specified address. This is the clearest signal that an address is invalid and should be removed.
551 — User not local; please try forwarding The receiving server doesn't accept mail for this address and won't forward it. Treat as a hard bounce.
552 — Requested mail action aborted The message was rejected due to exceeding storage limits. Unlike 452 (which is temporary), 552 is a permanent rejection — the server will not accept messages for this mailbox under its current configuration.
553 — Requested action not taken: mailbox name not allowed The address syntax is invalid or the mailbox name is not permitted. Treat as invalid.
554 — Transaction failed A catch-all rejection code meaning the transaction failed for an unspecified permanent reason. The message in the response usually gives more detail. Often indicates a policy-based block.
Soft bounce codes (4xx)
421 — Service temporarily unavailable The receiving server is temporarily unable to process messages. Your ESP will retry.
450 — Requested mail action not taken: mailbox unavailable The mailbox is temporarily unavailable — could be a server issue or a temporary policy block.
451 — Requested action aborted: local error in processing A server-side processing error. Usually resolves on retry.
452 — Requested action not taken: insufficient system storage The recipient's mailbox is full. The email will bounce until the mailbox is cleared.
A third category: blocked bounces
Some bounces don't fit cleanly into hard or soft categories — they're policy-based rejections that indicate your sender reputation has triggered a filter.
421 4.7.0 — IP temporarily blocked — You've been rate-limited or temporarily blocked by the receiving server. This is a temporary soft-bounce-style response, but it's a signal that your sending reputation at that server needs attention.
550 5.7.1 — Message rejected due to policy — A permanent block based on your sending domain or IP reputation. This acts like a hard bounce in the immediate term but won't resolve itself — you need to address the underlying reputation issue.
451 4.7.0 — Greylisted — The server is using greylisting, a spam-prevention technique that temporarily rejects messages from senders it hasn't seen before. Legitimate senders retry and get through; spam servers typically don't retry. Your ESP handles this automatically.
How ESPs classify and report bounces
How your ESP classifies bounces matters, and different platforms handle it differently.
Mailchimp separates hard and soft bounces in campaign reports. Hard bounces are automatically suppressed after one occurrence; soft bounces are suppressed after 15 within 30 days.
Klaviyo uses "hard" and "soft" classifications. Hard bounces are suppressed immediately. Soft bounces are flagged but not automatically suppressed — you need to set up suppression rules manually.
SendGrid uses "blocks" (policy rejections), "bounces" (hard bounces), and "deferred" (soft bounce retries in progress) as distinct categories.
ActiveCampaign classifies bounces internally and suppresses hard bounces automatically, but the bounce data can require manual review for detailed SMTP code analysis.
Knowing how your specific ESP handles bounces is important — some have automatic suppression that works well; others require manual configuration. If your ESP doesn't auto-suppress hard bounces, you need to do it yourself after each campaign.
The bounce rate thresholds that matter
Gmail and Outlook both publish guidance on acceptable bounce rates. Gmail's Postmaster Tools shows your domain reputation, and their guidance indicates that a hard bounce rate above 0.08% is a concern, and above 0.3% will trigger delivery problems. Klaviyo, Mailchimp, and other ESPs enforce similar thresholds.
The only reliable way to stay below these thresholds is to verify email addresses before sending to them — not after. Email verification catches invalid addresses before they ever appear in your bounce report.
What causes bounce rates to rise?
- Aged lists: email addresses decay at ~22% per year. A list you built 18 months ago will have significant invalid addresses.
- No double opt-in: users enter fake addresses or make typos that bypass validation but don't correspond to real mailboxes.
- Purchased or scraped lists: these contain large proportions of invalid addresses from day one.
- Disposable email addresses: temporary email services create addresses that expire within hours or days.
- Reactivating dormant lists: a list that hasn't been mailed in 12+ months has aged significantly — addresses that were valid at last send may no longer exist.
The reputation impact of repeated hard bounces
Each hard bounce damages your sender reputation in two ways:
Immediate signal — a hard bounce tells the receiving server that you attempted to send to a non-existent address. Multiple such attempts signal poor list hygiene.
Rolling reputation — inbox providers like Gmail evaluate your hard bounce rate as a rolling metric across all sends. A spike from one campaign can take weeks to recover from even if subsequent campaigns are clean.
The compounding nature of reputation damage is why early intervention matters. One campaign with 2% hard bounces is significantly more damaging than ten campaigns with 0.02% hard bounces each — even though the total number of bounces might be similar.
Prevention is better than suppression
Suppressing bounced addresses stops the damage from getting worse, but it doesn't undo the damage already done to your sender reputation. Verifying your list before each campaign — or at the point of capture — is the only approach that prevents the bounce from happening in the first place.
For one-off cleanups, bulk email verification processes your entire list and returns a clean, downloadable file. For ongoing capture, the email verification API checks each address at the point of registration.
Summary
Hard bounces are permanent failures — remove immediately. Soft bounces are temporary — let your ESP retry, but suppress addresses that bounce repeatedly. Monitor your bounce rate closely and keep it well below 0.1% to maintain good inbox placement.
The 5xx/4xx distinction is a clear signal: 5xx means the address is gone and should be removed from every system that holds it; 4xx means retry and only escalate to removal if the problem persists.
Ready to clean your email list?
Verify thousands of addresses in minutes. No subscription — pay only for what you use.