Guide · Deliverability

Hard bounce vs soft bounce: what they mean and what to do

They are not the same problem and they do not have the same solution. Here is what each type means, what the actual error codes tell you, and how to handle them correctly.

Updated September 2026 · 6 min read

A bounce is a delivery failure -- your email could not be delivered to the recipient's mail server. Bounces are divided into two categories based on whether the failure is permanent or temporary. Getting this distinction right matters because the correct response to each is different, and handling them incorrectly damages your sender reputation.

The difference

Hard bounce -- permanent failure

  • The address does not exist
  • The domain does not exist
  • The server has permanently rejected the address
  • Suppress immediately -- never retry

Soft bounce -- temporary failure

  • The mailbox is full
  • The server is temporarily unavailable
  • The message was too large
  • Monitor -- retry is sometimes appropriate

The practical difference is what you do next. A hard bounce means the address is permanently undeliverable and must be removed from your list immediately. A soft bounce means delivery failed this time but may succeed on a future attempt -- though repeated soft bounces from the same address often indicate a real problem worth investigating.

What the SMTP codes actually tell you

When a mail server rejects a message, it returns a three-digit SMTP response code. The first digit tells you the category: 5xx codes are permanent failures (hard bounces), 4xx codes are temporary failures (soft bounces).

CodeTypeMeaningAction
550 5.1.1HardUser unknown -- address does not existSuppress immediately
550 5.1.2HardBad destination mailbox addressSuppress immediately
550 5.4.1HardRecipient address rejected -- access deniedSuppress immediately
551 5.1.1HardUser not local, no forwardingSuppress immediately
552 5.2.2SoftMailbox full -- over quotaRetry, suppress after 3+ bounces
421 4.7.0SoftServer temporarily unavailableRetry automatically
450 4.2.1SoftMailbox temporarily unavailableRetry, watch pattern
452 4.2.2SoftMailbox fullRetry, suppress after 3+ bounces
The codes are not always clean. Some providers return 5xx codes for conditions that are actually temporary, and some return 4xx codes for addresses they have permanently blocked. A 550 5.4.1 from Microsoft often means the sending IP or domain is on a block list -- that is a sender-side problem, not a bad address. Read the full error message, not just the code.

Hard bounces in practice

A hard bounce tells you the address is permanently undeliverable. The correct response is immediate suppression -- remove the address from your active list and do not attempt to send to it again.

This is not optional. Continuing to send to hard-bounced addresses is one of the fastest ways to damage your sender reputation. Gmail, Microsoft, and Yahoo all track bounce rates as a signal of list quality. Keep your hard bounce rate below 2% -- above that, you will see inbox placement deteriorate. Above 5%, you risk account suspension from most sending providers.

Common causes of hard bounces

Soft bounces in practice

A soft bounce means delivery failed this time for a temporary reason. Most sending platforms retry soft bounces automatically over a period of hours or days. That is usually the right response for server-side temporary failures like 421 or 450 codes.

However, soft bounces need monitoring. An address that soft bounces repeatedly -- say, three or more times over several sends -- is no longer behaving like a temporary problem. A mailbox that has been full for three months is probably abandoned. An address that consistently returns 452 is worth suppressing.

Repeated soft bounces are a signal, not just noise. Most platforms treat soft bounces as temporary and keep retrying indefinitely. Check whether your platform has a soft bounce threshold -- after N consecutive soft bounces, the address should move to suppressed. If it does not, you are sending to addresses that will never receive your mail and accumulating pointless delivery attempts.

Soft bounces that are really sender problems

Not all soft bounces are about the recipient's mailbox. Some temporary failures point at your own sending infrastructure:

If you see a sudden spike in soft bounces across many different addresses, the problem is almost certainly on your side -- check your sending IP reputation, authentication configuration, and whether you have hit a sending rate limit.

What bounce rates to watch

Bounce rateAssessmentAction
Under 0.5%HealthyNormal operations
0.5% -- 1%WatchReview list acquisition and hygiene practices
1% -- 2%ConcerningAudit list, verify addresses, check acquisition sources
Over 2%ProblemPause sending, investigate immediately, clean list before resuming
Over 5%CriticalHigh risk of account suspension -- stop sending and remediate

How to keep bounce rates low

Verify addresses before sending. Email verification checks whether an address exists before you send to it. Running verification on a new list or before a first send catches invalid addresses before they bounce. No verification service is perfect -- catch-all domains and some corporate servers return valid responses for any address -- but verification catches the obvious invalids and typos.

Use confirmed opt-in for new subscribers. Double opt-in -- sending a confirmation email before adding someone to your list -- ensures the address is real and the inbox is accessible. It adds friction to signup but removes invalid addresses at the point of entry rather than after bouncing.

Suppress bounced addresses permanently. Hard bounces should never be retried. Most platforms maintain a suppression list automatically -- make sure yours does and that suppressed addresses stay suppressed even if you import the same list again later.

Watch your engagement over time. A list that was clean six months ago has more invalid addresses now. Subscribers leave companies, abandon email addresses, and change providers. Regularly removing disengaged subscribers -- those who have not opened in 12 months, for example -- catches address decay before it shows up as bounces.

Hard bounces handled automatically.

AledaMail immediately blacklists hard-bounced addresses so they never receive another send. Connect your sending domain and start building a clean list from day one.

Start free