Hard Bounce vs Soft Bounce: What Each Means, Acceptable Bounce Rates and How to Fix Them

Hard bounce vs soft bounce: permanent and temporary email failures, the acceptable bounce rate and the fix order
REVIEWER:

Publish date: Oct 27, 2026

A hard bounce is a permanent delivery failure: the address does not exist, or the receiving server refuses your mail for good. A soft bounce is a temporary one: a full mailbox, a rate limit or a server fault, and the message gets another try. Spona sent 20,000 emails to verified B2B addresses and logged every server reply. Hard bounces came to 1.525% and soft bounces to 2.425%.

This guide reads those replies code by code. It shows when a soft bounce turns hard on each sending platform, what rate counts as acceptable, and the fix for each bounce type. It ends with what Spona does when a delivered list crosses 2%.

The Extractor
The Refiner
The Verifier
The Exporter

Get thousands of leads in 4 minutes.

Stop stitching tools together.
Start with verified sales data, delivered in minutes.

SCALE SALES NOW

No contracts · No setup · No onboarding

Hard bounce vs soft bounce in 20,000 sends: what came back

An email bounce is any server reply that says the message did not get through. Three outcomes cover every send: the server accepts the message, defers it or rejects it.

Spona logs them with three rules. Delivered means the server answered 250 2.0.0 and took the message. A soft bounce is a 4.x.x deferral still open after 72 hours, with no final rejection. A hard bounce is a final 5.x.x rejection.

OutcomeSMTP codeMeaningCountShare of sends
Delivered250 2.0.0Accepted by receiving server19,21096.050%
Soft bounce4.x.xStill deferred after 72 hours; no final 5.x.x4852.425%
Hard bounce5.x.xFinal permanent rejection3051.525%
TotalAllAttempted sends20,000100.000%

Add the two bounce rows and 790 messages failed, or 3.95% of sends. Soft bounces made up 61% of those failures. That ratio matters, because the two types call for opposite actions. You remove a hard bounce and wait on a soft one.

Two caveats travel with the table. Delivered is not the inbox. A server can accept a message and file it under spam, and the log still reads 250.

The second caveat is the list. Every address had passed Spona's check before the send, so the rates show what 40 verified B2B lists produced together. They do not measure what the check removed.

What is a hard bounce in email? A permanent rejection

A hard bounce is the receiving server telling you to stop. RFC 3463 is the standard behind the codes. It defines a permanent failure as one "not likely to be resolved by resending the message in the current form". The reply starts with a 5, and the two digits after it say why.

Sending platforms treat that reply as final. In most cases, Mailchimp removes hard-bounced addresses "automatically and immediately". HubSpot drops them as recipients of future marketing emails. Twilio SendGrid puts them on a suppression list.

One exception matters. HubSpot notes that a hard bounce "can also be caused by a strict email security filter". The address exists; a gateway refused you. That case shows up in the codes as a 5.7.x policy rejection, and the fix sits on your side, not in the list.

Why emails hard bounce: four causes

The mailbox does not exist (5.1.1). RFC 3463 calls it a bad destination mailbox address, where "the mailbox specified in the address does not exist". Microsoft's non-delivery guide gives the two usual reasons: the sender typed the address wrong, or the address no longer exists in the destination system.

On a B2B list the second reason grows with time, because people change jobs. Klaviyo's glossary lists one such case: a recipient who changed their email address and deleted the old one. Spona's post on data decay covers the pace.

The domain does not exist (5.1.2). The destination system "does not exist or is incapable of accepting mail". If a company retires its domain after an acquisition, mail to every contact there can fail this way.

The mailbox is disabled (5.2.1). The standard labels it "Mailbox disabled, not accepting messages". A leaver's account that IT switched off but kept can answer this way.

Delivery is not authorized (5.7.1). The server says "the sender is not authorized to send to the destination". Microsoft's version is blunt: its code 5.7.509 means your domain does not pass DMARC verification and carries a DMARC policy of reject. Nothing is wrong with the address; something is wrong with your authentication.

What is a soft bounce email? A temporary deferral

A soft bounce is the server saying not now. RFC 3463 calls the class a persistent transient failure, "one in which the message as sent is valid" but a passing condition holds it up. The reply starts with a 4. Your sending tool keeps the message and tries again.

HubSpot describes a soft bounce as "a temporary problem with the recipient's server, or another temporary technical problem". It keeps retrying for up to 72 hours, and contacts who soft bounce stay eligible for future emails. Twilio SendGrid retries for up to 72 hours as well. The industry body M3AAWG tells senders to "re-queue the message and retry later".

Why emails soft bounce: rate limits, full mailboxes, server trouble

You sent too much, too fast (4.7.0). The receiving server defers your connection on policy grounds. Microsoft's codes 4.7.500 to 4.7.699 read "Access denied, please try again later". They mean it spotted suspicious activity and restricted the sender for a while.

M3AAWG's advice for a temporary block like this is to "close the connection and open a new connection later". This deferral was the most common soft code in Spona's log.

The mailbox is full (4.2.2). The user "has exceeded a per-mailbox administrative quota or physical capacity". A mailbox nobody empties fills up.

The mailbox is temporarily unavailable (4.2.0). The account exists, but the server cannot deliver to it at that moment.

The mail system failed (4.3.0) or did not answer (4.4.1). RFC 3463 files the second under "No answer from host". The remote server is down, overloaded or unreachable, and your message waits in the queue.

Soft bounce vs hard bounce: seven differences side by side

DifferenceSoft bounceHard bounce
SMTP reply class4.x.x, a transient failure5.x.x, a permanent failure
What the server meansThe message is valid; the condition is temporaryResending the same message will not help
Common causesRate limit, full mailbox, server down, mailbox temporarily unavailableMailbox does not exist, domain invalid, mailbox disabled, policy block
What your sending tool doesRetries for up to 72 hours (HubSpot, Twilio SendGrid)Suppresses the address, usually at once (Mailchimp, HubSpot, Twilio SendGrid)
Effect on the contactStays eligible for future sendsRemoved from future sends
Counts toward Amazon SES's bounce rateNo: "mailbox full" and blocked IPs stay outside itYes, for hard bounces to domains you have not verified
Your fixSlow down, check authentication, wait; remove after repeated failuresSuppress, then reverify the list it came from

Email bounce codes: the 10 codes behind Spona's bounces

Every bounce in the log carries two codes. The three-digit reply, such as 550 or 421, is the classic SMTP status. The dotted enhanced code, such as 5.1.1, comes from RFC 3463 and gives the reason. Read the enhanced code first: its first digit tells you whether to remove the address or wait.

Ten codes account for all 790 bounces in Spona's sends. The last hard code, 554 5.0.0, is the bucket for other final failures. One code dominates each side: on the hard side, "mailbox does not exist" made up 59% of hard bounces. On the soft side, rate and policy deferrals made up 43% of soft bounces.

OutcomeSMTP codeMeaningCountShare of all 20,000 sends
Hard bounce550 5.1.1Recipient mailbox does not exist1800.900%
Hard bounce550 5.1.2Destination system/domain invalid550.275%
Hard bounce550 5.7.1Permanent policy/security rejection320.160%
Hard bounce550 5.2.1Mailbox disabled250.125%
Hard bounce554 5.0.0Other final failure130.065%
Soft bounce421 4.7.0Temporary rate/policy deferral2101.050%
Soft bounce450 4.2.0Mailbox temporarily unavailable1100.550%
Soft bounce451 4.3.0Temporary mail system failure850.425%
Soft bounce452 4.2.2Mailbox capacity reached500.250%
Soft bounce451 4.4.1Temporary destination connection failure300.150%

Only one hard code points at the sender rather than the list: the policy rejection. The 13 other final failures give no cause. Everything else on the hard side is a dead address, a dead domain or a closed mailbox. Only a fresher check catches those before the server does.

When does a soft bounce become a hard bounce?

No standard sets the moment. RFC 3463 defines the two classes and leaves the clock to the sender. Each platform picks a count or a time limit, and the rules differ enough to change your reported numbers.

Platform or bodyCut-off ruleWhat happens to the address
MailchimpAfter 7 soft bounces for an address with no subscriber activity, or up to 15 for a contact with previous activityConverted into a hard bounce and cleaned from the audience
HubSpotAfter up to 72 hours of retriesStays eligible for future emails
Twilio SendGridAfter 72 hours of continuous deferralMoved to a block/deferral list, which is "not a suppression list"
M3AAWG best practiceAfter it bounces consecutively at least two times over two weeks or moreRemoved from the list
Amazon SESSoft bounces never count: "mailbox full" and blocked IPs stay outside the bounce rateOnly hard bounces to unverified domains count
SponaAfter 72 hours of deferral with no final 5.x.xLogged as a soft bounce, not a hard bounce

Braze adds a complication: a bounce can arrive "even weeks after the initial delivery attempt". A delivered count is a snapshot. Rerun the numbers a week after the send before you judge a list.

Hard bounce vs soft bounce timeline: a 5.x.x reply is suppressed at once, a 4.x.x reply is retried for up to 72 hours

What is a good email bounce rate?

Under 2% hard bounces. That is the number Amazon SES gives its senders: "For best results, you should maintain a bounce rate below 2%". At 5% SES places the account under review, and at 10% it may pause sending. Its complaint thresholds are far tighter: review at 0.1% and a possible pause at 0.5%.

The mailbox providers themselves publish no bounce number. Google's bulk-sender rules cover anyone sending more than 5,000 messages to Gmail addresses in a day. They make senders process unsubscribes within two days and set no bounce limit.

Yahoo tells senders to "monitor hard and soft bounces", remove invalid recipients promptly and keep the spam rate below 0.3%. Neither names a bounce percentage. Spona's cold email statistics post lists "Email providers allow a 2% bounce rate" as a myth for that reason.

Spona's own benchmark sits under the line. The published benchmark splits the 20,000 sends by country, with 5,000 in each of four countries. The US hard bounce rate was 1.5% and the UK rate 1.2%. Pooled across all 20,000 sends, the rate was 1.525%.

Two things affect whether a list sits under 2%: how fresh the check is, and which bounces you count. The formula settles the second.

Email bounce rate formula, with a worked example

Bounce rate = bounces ÷ attempted sends × 100.

Run it on Spona's log, where 305 of 20,000 sends hard bounced. That is a hard bounce rate of 1.525%. Count soft bounces too and the numerator becomes 790. The total bounce rate is then 3.95%.

Two choices move the result. The first is which bounces count. Amazon SES counts only hard bounces to unverified domains, so a total bounce rate held against its 2% line overstates your risk.

The second is which sends count. Spona's published rate is "permanent delivery failures divided by attempted sends to the verified subset, excluding catch-all addresses". Name the formula whenever you report a bounce rate.

How to fix hard bounces and reduce soft bounces

Work the list in this order. Steps 1 to 4 handle what already bounced. Steps 5 and 6 stop the next batch from bouncing.

  1. Suppress every hard bounce at once, and never retry a 5.x.x. M3AAWG calls it "very important" that a message to a non-existent address is not retried, and that the address stays off future mailings. Mailchimp and Twilio SendGrid do this for you. If you send through your own SMTP server, you build the suppression list yourself.
  2. Let a 4.x.x retry, then remove the address after repeated failures. M3AAWG's cut-off is two consecutive bounces over two weeks or more. Mailchimp uses 7 or 15 soft bounces. Pick one rule and apply it to every list.
  3. Slow down when you see 421 4.7.0. The server is telling you that your sending pattern looks wrong, not that the address is wrong. M3AAWG's instruction is to close the connection and reconnect later. Spread the batch over more hours or more inboxes.
  4. Check SPF, DKIM and DMARC when 5.7.x appears. A policy rejection can mean the address is fine and your domain is not. Microsoft's 5.7.509 spells it out: the sending domain fails DMARC and carries a reject policy. Fix the record before you touch the list.
  5. Verify before the send, and recheck a list that has gone stale. A bulk verifier catches dead mailboxes and dead domains before the receiving server does. Spona's email list cleaning guide compares the services and their prices, and the B2B data validation post covers the checks beyond the mailbox.
  6. UK senders: keep a record of what bounced. If personal data is incorrect, the ICO's accuracy guidance says you must "take reasonable steps to correct or erase it" as soon as possible. The same page allows records of mistakes, "provided those records are not misleading about the facts". A suppression list can be such a record. It stops you re-importing a dead address next quarter. The ICO is reviewing this guidance because of the Data (Use and Access) Act.

What Spona does when hard bounces pass 2%, and its limits

Spona's operating target is hard bounces below 2% on a freshly checked list. A batch above it gets rechecked and investigated.

Of the 40 lists delivered in the sample, 4 crossed the line. The highest reached 3.0%, the lowest of the four 2.4%. The other 36 lists together ran at 1.394%.

Hard bounce rate of 40 Spona lists against the 2% target: four between 2.4% and 3.0%, the other 36 together at 1.394%

In three of the four cases, the investigation supported a data defect. One came from the sender's side: an authentication or policy problem that Spona documented and handed to the sending provider. Every case ran through five of the six steps; the cause decided whether step 4 or step 5 applied. Any remedy follows the actual contract.

StepTriggerSpona actionTimes triggered (n)
1List hard bounce above 2%Pause the affected batch and collect recipient-level final SMTP outcomes.4
2Affected batch under reviewReverify candidate emails; suppress invalid addresses and retain the original check time.4
3Check causeSeparate invalid-mailbox failures from authentication, policy blocks, stale checks and customer-side sending changes.4
4Data defect supportedPrepare a corrected export after investigation; any remedy follows the actual contract.3
5Sender-side cause supportedDocument the policy/authentication cause and ask the sending provider to remediate.1
6Issue reviewedRecord cause, correction and customer acknowledgement before reopening the batch.4

Where Spona fits: you describe your ideal customer in a chat. The AI mines 40+ sources, verifies every lead and delivers a scored list in about 4 minutes, and you pay per lead.

An email-only Standard Search lead costs 3 to 7 credits. At the plans' credit prices that is $0.024 to $0.07 a lead. Each new search session costs a one-time 1,000 credits. Every search starts with a free sample, and the Free plan carries 3,000 one-time credits.

Where it does not. Spona does not send your email, so it never sees the soft bounces your own setup causes. A 421 4.7.0 from a cold inbox is yours to fix. It does not measure inbox placement; delivered in its log means accepted.

The target held on 36 of 40 lists, not all of them, and one of the misses came from the sender's side. And if you already own the list, a dedicated bulk verifier is the tool built for checking it; the email list cleaning guide compares them.

The Extractor
The Refiner
The Verifier
The Exporter

Get thousands of leads in 4 minutes.

Stop stitching tools together.
Start with verified sales data, delivered in minutes.

SCALE SALES NOW

No contracts · No setup · No onboarding

Hard bounce vs soft bounce FAQ

Should I delete hard bounce emails?

Suppress them rather than delete them. A suppression list stops the same address coming back with the next import. Under the UK GDPR accuracy principle, a record of a mistake is fine as long as it is not misleading about the facts. Deleting the row removes your only proof that the address failed.

What bounce rate is too high for cold email?

Anything above 2% hard bounces needs action. Amazon SES reviews accounts at 5% and may pause them at 10%. No mailbox provider publishes a bounce threshold of its own. The cold email statistics post explains why "Email providers allow a 2% bounce rate" is a myth.

How long does an email take to bounce back?

A hard bounce comes back as soon as the server refuses the message, because nobody retries a 5.x.x. A soft bounce can take 72 hours to show in your report, because HubSpot and Twilio SendGrid keep retrying for that long. Braze warns that some bounces arrive weeks after the first attempt.

Does an email bounce if the address does not exist?

Yes, in most cases. Klaviyo's glossary says a send to a non-existent address gets a 550 5.1.1 error. It was the biggest hard-bounce code in Spona's log, at 180 of 305 hard bounces.

Is a 20% or 70% bounce rate good?

Those numbers come from website analytics, where a bounce is a visitor who leaves after one page. In email they would be a disaster. Amazon SES puts an account under review at 5%, so 20% is four times past that line.

Share this article

GET FREE LEADSSparkle

Similar Topics For You

see all texts