ListGuard← Back to home
Blog

Hard Bounce vs Soft Bounce: Codes, Causes and What to Do

By Eric Dieperink · Published September 18, 2026 · Last reviewed September 18, 2026

A hard bounce is a permanent rejection (SMTP 5xx code): the address will not accept mail, now or later. A soft bounce is a temporary failure (4xx code): the server could not deliver right now, but the address itself is not necessarily broken. The distinction comes straight from SMTP, and it dictates opposite actions: never email a hard bounce again; give soft bounces time before doing anything.

Key takeaways

Hard bounce = permanent (5xx). Remove and suppress. Never retry the address.

Soft bounce = temporary (4xx). Retry on later sends; only remove after a persistent pattern.

The bounce reason is often not visible: many servers send a generic 550 regardless of the true cause.

Bounce rates are a deliverability signal: mailbox providers watch them, and Google and Yahoo publish explicit expectations for bulk senders.

Cleaning your list before sending prevents most hard bounces. Bounce logs are the expensive way to discover the same dead addresses.

Where the codes come from

Every bounce is an SMTP status reply, standardized in RFC 5321. Codes with the pattern 5xy signal a permanent failure: repeating the same command will fail again. Codes with the pattern 4xy signal a temporaryfailure: the server is asking you to try again later. ESP dashboards add friendly labels (“invalid mailbox”, “mailbox full”), but underneath those labels is always one of these two classes.

Common codes and what they mean

CodeTypeTypical meaningAction
550HardMailbox unavailable, not found, or rejected by policyRemove and suppress the address
551HardUser not local; the recipient moved onRemove; check for a new address if you have another channel
553HardMailbox name not allowed (bad syntax or rejected format)Remove and suppress
421SoftService not available; server overloaded or rate-limiting youRetry later; slow your sending if it repeats
450SoftMailbox temporarily unavailable (e.g. greylisting)Retry on a later send
451SoftLocal error in processing; try againRetry on a later send
452SoftInsufficient storage; mailbox fullRetry; investigate if it persists for weeks

What causes each type

Hard bounces

The mailbox was deleted, or never existed (typo, fake signup, purchased data).

The domain expired or dropped its mail records, which is very common on lists older than a year.

The receiving server blocks your mail by policy (often disguised as a 550).

Soft bounces

Greylisting: the server deliberately defers unknown senders once, then accepts the retry.

A full mailbox or an overloaded server.

Temporary technical problems on either side, or rate limits triggered by sudden volume spikes.

What to do, and what not to do

For hard bounces, the action is final: add the address to your suppression list so no future send includes it. Retrying a hard bounce is one of the fastest ways to look like a spammer to a mailbox provider. For soft bounces, patience is the strategy: most resolve on a retry. Only treat an address as dead after a persistent pattern across multiple sends, then suppress it as well. How suppression lists fit into the broader workflow is covered in what is an email suppression list.

One honest caveat: the bounce text you receive is not always truthful. Some servers return a generic 550 for policy rejections, and aggressive anti-spam filters sometimes reject valid mail. That is why bounce handling should feed your decisions, not replace list-hygiene practices.

Preventing bounces beats processing them

Bounce handling is reactive by definition. The proactive version is the same problem solved earlier: a pre-send cleaning pass removes dead domains, malformed lines, duplicates and disposable addresses before they ever reach a mail server. The full sequence is in how to clean an email list.

Keep reading

How to clean an email list · Verification vs validation vs cleaning

Fewer bounces start before the send

ListGuard removes the causes of most hard bounces in one pass and returns a plain report of what was removed and why. See how the cleaner works or create a free account.

Sources

RFC 5321: Simple Mail Transfer Protocol (4xy/5xy reply code semantics) · Google: Email sender guidelines · Yahoo Sender Hub: Best practices

More from the blog

How to Clean an Email List: A Complete Pre-Send Workflow
Email Verification vs Validation vs List Cleaning
All articles

  • Contact
  • Privacy Policy
  • Terms of Service
  • Cookie Statement
  • Legal Notice
  • Security
  • Blog
  • About
  • Home
© 2026 Diexar. All rights reserved.