01

Hard bounce email and soft bounce: the difference that costs domains

Every sending platform splits bounces into hard and soft, and most senders treat the split as a reporting detail. It is not. The two require opposite responses, and applying the wrong one is how teams lose a sending domain over a list they thought was fine. Last updated 17 September 2026.

02

The definitions, precisely

A hard bounce is a permanent failure. The receiving server has told you that this message will never be deliverable to this address, and nothing you do differently will change that.

  • The mailbox does not exist, or it existed and has been closed.
  • The domain does not exist, or it publishes no mail servers at all.
  • The address is not valid as an address and never was.
  • The receiving server has blocked your sending domain outright.

A soft bounce is a temporary failure. The receiving server is telling you that it cannot take the message right now, and the same message to the same address might succeed later.

  • The mailbox is full.
  • The receiving server is down, overloaded or rate limiting you.
  • The message is too large for the recipient's limit.
  • Greylisting, where a server defers the first attempt from an unknown sender on purpose.
  • A temporary reputation block while the provider decides what it thinks of you.

Why the response has to be opposite

Retrying a soft bounce is correct. Your sending platform does it for you, usually several times over a day or two, and most soft bounces clear on their own.

Retrying a hard bounce is not just useless, it is actively damaging. Mailbox providers count repeated sends to addresses they already told you do not exist. A sender who keeps doing that is telling the provider they do not process bounces, which is behaviour associated with senders nobody wants to receive. That is the point where good mail starts landing in spam folders.

So: retry the soft ones, suppress the hard ones permanently, and never let a hard bounce back into a list.

Reading the codes

The receiving server states which kind it is, in the first digit of its response code. It is worth knowing because bounce reports sometimes classify sloppily.

Code range Meaning Handling
5xxPermanent failure, a hard bounceSuppress the address permanently, never retry
4xxTemporary failure, a soft bounceLet the platform retry, then review if it persists
550The most common hard bounce, mailbox unavailable or no such userSuppress immediately
552 or 452Mailbox over quota, usually softRetry, and treat as risky if it repeats across campaigns
421Service unavailable or the server is throttling youRetry more slowly, and check your sending volume

The classification your platform shows is usually right, but two cases mislead people. A soft bounce that repeats across several campaigns is functionally a dead address and should be suppressed. And a block on your sending domain arrives as a hard bounce on individual messages while being a problem with you, not with the address.

What each one tells you about the list

This is the diagnostic value most senders miss.

  • Hard bounces at any real volume mean the list was not verified before the send. There is no other common cause. The addresses were wrong when you sent them, and something should have caught that.
  • Soft bounces at volume, spread across many domains, usually mean a reputation problem that has already started. Receiving servers are deferring you, which is what they do before they start refusing you.
  • Soft bounces concentrated on one domain usually mean that domain had a bad hour, and they clear by themselves.

So the split is not just about how to retry. It tells you whether you have a list problem or a sender problem, and those are fixed in completely different places.

The handling rules

  1. Suppress every hard bounce, permanently, the moment it arrives. Put it on a suppression list that every future campaign checks, not just this one.

  2. Let your platform retry soft bounces on its own schedule. Do not build your own retry loop on top of it.

  3. Suppress an address that soft bounces across several campaigns. It is a dead mailbox that happens to fail politely.

  4. Watch the trend, not the single number. A rising soft bounce rate across many domains is an early warning about your reputation, and it arrives before anything else does.

  5. Verify before the send so hard bounces never reach a campaign at all. This is the only one of these rules that prevents the problem rather than managing it.

Where verification stops this

Verification catches hard bounces before they exist, because it asks the same question a hard bounce answers, just earlier and without sending anything. Syntax and domain checks remove the addresses that could never work. The mailbox check at the receiving server removes the ones that used to work and no longer do.

What it cannot catch is a full mailbox, a server that goes down next Tuesday or a reputation block you have not earned yet. Those are soft bounces, and they are properly handled at send time rather than before it.

That division of labour is the thing to take away. Hard bounces are a list problem, solved before the send. Soft bounces are a sending problem, solved during it. Read email bounce rate for the thresholds, and bulk email verification for the cleaning step.