Hard bounce vs soft bounce
One means remove the address. The other usually means leave it alone.
The short version
| Hard bounce | Soft bounce | |
|---|---|---|
| Meaning | Permanent failure. It will never deliver. | Temporary failure. It may deliver later. |
| Typical causes | Address does not exist, domain does not exist, domain accepts no mail. | Mailbox full, server down or overloaded, message too large, greylisting. |
| Reply code | 5xx — permanent | 4xx — transient |
| Retried? | No. Retrying is pointless and looks careless. | Yes, automatically, usually over 24 to 72 hours. |
| What to do | Remove immediately. Most platforms suppress it after one. | Leave it. Remove only after repeated failures across separate campaigns. |
| Reputation damage | Significant. This is the one that counts against you. | Minimal in normal volumes. |
How to tell which one you got
The bounce message carries a numeric reply code, and its first digit decides the category. This is defined by the SMTP standard, so it is consistent across every mail server you will ever send to:
-
5xx— permanent. The server is stating that this will not work now and will not work later. Hard bounce. -
4xx— transient. The server is stating that it cannot accept the message right now and you should try again. Soft bounce.
The codes you will actually see most often, and what they usually mean:
| Code | Usually means | Type |
|---|---|---|
550 5.1.1 | The mailbox does not exist | Hard |
550 5.1.2 | The domain does not exist or accepts no mail | Hard |
552 5.2.2 | Mailbox is over its storage quota | Usually treated as soft |
451 4.7.1 | Greylisted, or temporarily deferred for policy reasons | Soft |
452 4.2.2 | Mailbox full, stated as temporary | Soft |
421 4.7.0 | Service unavailable, or you are being throttled | Soft |
The wording after the code is written by whoever runs the receiving server, so it varies. The code itself does not.
The one that matters is the hard bounce
Soft bounces are largely noise. Mailboxes fill up, servers have bad afternoons, and your platform retries — none of that says anything about you as a sender.
A hard bounce says something specific and unflattering: you sent to an address that does not exist, which means you did not know who was on your list. Mailbox providers read a pattern of them exactly that way, and the judgement attaches to your sending domain rather than to the failed message. The practical consequence is that your mail to valid addresses starts landing in spam folders.
That is the actual cost, and it is why the two categories deserve different treatment. More on the mechanism in what a bounce rate is and what counts as good.
When a soft bounce should be treated as a hard one
A soft bounce is a statement about a moment. Repeated soft bounces are a statement about an address.
An abandoned mailbox usually goes over quota and stays there, returning a soft bounce forever without ever becoming a hard one. Nobody is going to clear it out. If you only ever remove hard bounces, these accumulate quietly for years.
A workable rule: three consecutive soft bounces across three separate campaigns means remove. Not three retries within one send — your platform does those automatically and they mean nothing. Three separate occasions, days or weeks apart.
What your platform already does
Most email platforms suppress a hard-bounced address automatically after a single occurrence and will not send to it again, which is correct and saves you the job. Two things they generally do not do:
- Act on repeated soft bounces. The rule above is usually yours to apply, not something the platform enforces.
- Prevent the bounce in the first place. Suppression happens after the damage — the message was sent, the server rejected it, and the rejection was counted against your reputation. Removing the address afterwards stops the second offence, not the first.
That second point is the whole argument for checking a list before a send rather than cleaning it afterwards. A hard bounce you never generate costs you nothing; one you clean up after has already been recorded.
Where this leaves you
Remove hard bounces at once and let your platform do it for you. Leave single soft bounces alone. Remove an address that soft bounces three campaigns running. And if the hard bounce count is what is troubling you, the fix is upstream of the send.
ListCheckup checks a list before you send, shows the price before anything is spent, never bills for duplicates or malformed rows, and gives every result a plain-English reason. It opens in the coming weeks. Leave your address and we will tell you the day it does.
Related: what counts as a good bounce rate, and why catch-all domains cannot be checked at all.