All articles
DeliverabilityBy Efe Berke Çolaker 10 min read

Soft Bounce vs Hard Bounce: Reading the Codes and Acting on Them

What 4xx and 5xx responses mean, which bounces to suppress immediately, which to retry, and the thresholds that separate a bad list from a bad setup.

ON THIS PAGE
  1. 01The two code families, and why the first
  2. 02The specific codes worth recognising
  3. 03The thresholds that actually matter
  4. 04Handling bounces properly, in order
  5. 05What a bounce pattern is telling you
  6. 06Sources and method
  7. 07FAQ
Soft Bounce vs Hard Bounce: Reading the Codes and Acting on Them

By Efe Berke Colaker, Founder at GetleadReviewed by the Getlead editorial team for accuracy. Last updated August 2026.

Every sending tool reports a bounce rate as one number, which is where the confusion starts. Two very different events are being added together: a server saying this mailbox does not exist, and a server saying come back later.

The first is permanent and costs you reputation. The second is routine and costs you nothing if handled correctly. Telling them apart takes about ten seconds once you know what to look at, and it changes what you do next.

This covers the code families, the specific responses worth recognising, the thresholds that matter. And the retry logic that keeps temporary failures from turning into permanent ones.

KEY TAKEAWAYS
Hard bounce is a 5xx: the address does not exist. Suppress immediately and never retry, because every attempt is another mark against your domain.
Soft bounce is a 4xx: temporary, so retry. Full mailboxes, greylisting and throttling all sit here and most clear within hours.
Working thresholds: total bounce under 2% per campaign and hard bounce under 0.5%. Our verified sends run at 0.51% total.
A bounce problem is almost always a list problem. In our verification data 23.9% of raw records are invalid before a single message is sent.

The two code families, and why the first digit is everything

SMTP responses are three digit codes and the first digit carries the meaning. A 2xx is success. A 4xx is a temporary failure, meaning the server is refusing right now but might accept the same message later. A 5xx is a permanent failure, meaning do not bother trying again.

That distinction is defined in the protocol itself rather than by any vendor. That is why it is consistent across every mail server you will ever encounter. Sending tools then map those codes onto the friendlier labels soft and hard.

Soft bounce means a 4xx response. The mailbox may well exist and be perfectly reachable in an hour. Hard bounce means a 5xx response, and the most common one, 550, is the server telling you the mailbox does not exist at all.

The practical consequence is what you do next. Soft bounces get retried automatically by your sending infrastructure. Hard bounces should be suppressed on the spot. Because retrying a known dead address is the clearest possible signal that you are not maintaining your list.

Methodology: we analyzed 383,368 email addresses through live SMTP verification and measured 34,973 tracked outbound sends inside Getlead, aggregated and anonymized at campaign level. Every platform number in this article is what the mail servers and the campaigns returned, not a vendor claim. Sample, method and limitations are in the benchmark study.

A hard bounce is a permanent rejection returned as a 5xx code, most often 550, meaning the mailbox does not exist and no retry will ever succeed.

For example, a 5,000 message send to an unverified list produces roughly 1,200 hard bounces at the 23.9% invalid rate we measure on raw data. That is fifty times the 0.5% hard bounce ceiling.

The specific codes worth recognising

You do not need the full list. Six responses cover the overwhelming majority of what a cold email program actually sees, and each implies a different action.

CODEWHAT IT MEANSACTION
550No such mailbox, permanentSuppress now
553Address rejected or malformedSuppress now
554Transaction failed, often reputation basedInvestigate sender
421Service unavailable or throttlingRetry, slow down
450Mailbox busy or greylistingRetry later
452Insufficient storage, mailbox fullRetry for days

The one to watch closely is 554. It is a permanent failure that usually has nothing to do with the recipient address and everything to do with you: reputation, blocklisting or content. Treating it as a bad address means suppressing a perfectly good prospect while the actual problem grows.

Also note that 421 often carries a rate limiting message rather than a rejection. If a campaign generates a wall of 421 responses from one provider, the send is going out too fast. And the fix is pacing rather than list hygiene.

When a soft bounce becomes hard

Sending infrastructure retries 4xx responses for a period, typically over one to three days, and eventually gives up. At that point a persistent soft bounce is reclassified as hard and the address should leave the list. An address that has refused mail for three days is not a viable prospect for this campaign.

The thresholds that actually matter

Bounce rate is judged in absolute terms by mailbox providers, not relative to your history, so the numbers are worth committing to memory.

2%total bounce ceiling
0.5%hard bounce ceiling
0.51%our rate on verified lists

Total bounce rate should stay under 2% per campaign, with hard bounces specifically under 0.5%. Above those levels you are telling receiving servers that your list is not maintained, and filtering follows quickly.

For context, campaigns sent to SMTP verified lists in our own data bounce at 0.51% in total. That is roughly a quarter of the ceiling. And the entire difference between that number and a double digit bounce rate is whether the list was verified before the send.

The reason the tolerance is so narrow is that bounces are trivially avoidable. Verification is cheap and instant, so a high bounce rate is not bad luck, it is evidence of a process that skipped a step. Receiving servers read it exactly that way.

Where the bounces come from before you send

The distribution in raw B2B data explains the arithmetic. Across 383,368 addresses we verified, 23.9% were invalid outright and 16.7% were catch-all domains that confirm nothing. Send an unverified file and roughly a quarter of it hard bounces on the first attempt, which is fifty times the safe threshold.

Why providers judge you in absolutes

A receiving server has no idea whether your list is new, whether you just imported a CRM, or whether last quarter was better. It sees one campaign arriving and a percentage of it addressed to mailboxes that do not exist. There is no context in which that reads well.

That is why improvement stories do not help. Cutting bounce rate from 14% to 7% is real progress internally and still fourteen times over the hard bounce ceiling externally. The only number that counts is the one on the current send.

Handling bounces properly, in order

Most of this should be automatic. If any step is a manual task somebody remembers to do on Fridays, it will eventually not happen.

  1. Suppress every hard bounce immediately and permanently, across all campaigns and mailboxes, not just the one that sent.
  2. Let soft bounces retry on their own schedule, and cap the retry window at about three days.
  3. Reclassify a soft bounce as hard once retries are exhausted, and suppress it.
  4. Treat a 554 as a sender side alarm rather than a bad address, and check reputation before touching the list.
  5. Watch bounce rate per mailbox and per domain, since an aggregate hides the one mailbox working a stale segment.
  6. Re-verify the remaining list whenever a campaign exceeds the 2% total threshold.

The suppression list has to be global. A prospect who hard bounced from one mailbox will hard bounce from every mailbox. And rotation setups make it easy to accidentally retry the same dead address from eight different senders.

Keep the bounce reason on the record too, not just the fact of the bounce. Six months later, the difference between an address that was rejected as nonexistent and one that hit a full mailbox decides whether re-verifying it is worthwhile.

Verification before the send, not after the bounce
Getlead includes a 420M+ verified B2B database, SMTP verification at export, warm-up and sending. From $19.90 a month, 14 day money back guarantee.
See pricing

What a bounce pattern is telling you

The shape of the bounces diagnoses the cause faster than the rate alone. Four patterns cover nearly everything.

  • High hard bounce, spread evenly across domains. The list is old or unverified. Verify before the next send.
  • High hard bounce concentrated on one domain. That company changed its mail setup or shut down. Prune those records.
  • Sudden 4xx wall from one provider. You are sending too fast for that provider. Slow the pace and spread the volume.
  • Rising 554 responses. A reputation or blocklist problem. Stop sending from that domain and investigate before continuing.

The last pattern is the one that gets misread most often, because it looks like a data problem in the dashboard. Suppressing those addresses removes the symptom and leaves the cause, and the next campaign performs worse than this one.

Bounces are also the only deliverability signal you get for free and in real time. Complaint rate lives at the provider and needs Postmaster Tools, placement needs seed testing. But bounces arrive in your own logs within seconds of the send.

That makes them a useful early warning even though they are a lagging indicator of list quality. A campaign whose bounce rate climbs while the list has not changed is usually a campaign whose sender reputation is starting to slip.

Reading bounces per segment

Aggregate bounce rate across a campaign hides which segment carried the damage. If three segments went out together, split the reporting: one of them is usually responsible for nearly all of it. And that segment is the one to re-verify or retire.

This is the same argument for one segment per campaign that complaint tracking makes. When the diagnostic granularity matches the decision you have to make, the fix is obvious rather than a guess.

Sources and method

First-party data (Getlead, 2026): the verification split of 43.4% confirmed valid, 23.9% invalid, 16.7% catch-all and 16.0% unknown comes from 383,368 addresses analyzed through live SMTP verification. And the 0.51% bounce rate comes from 34,973 tracked sends, aggregated and anonymized at campaign level. Full method in our cold email benchmark study.

External sources: SMTP reply code semantics, including the meaning of the 4xx and 5xx families, are defined in RFC 5321; the 2% total and 0.5% hard bounce working thresholds follow published 2026 email benchmarks (Prospeo, 2026).

Figures were checked in August 2026.

Frequently asked questions

What is the difference between a soft bounce and a hard bounce?

A soft bounce is a temporary failure returned as a 4xx SMTP code, such as a full mailbox or greylisting, and it should be retried. A hard bounce is a permanent failure returned as a 5xx code, usually 550 meaning the mailbox does not exist. And it should be suppressed immediately and never retried.

What bounce rate is acceptable?

Keep total bounce rate under 2% per campaign and hard bounces specifically under 0.5%. Campaigns sent to SMTP verified lists in our data bounce at 0.51% in total. That is about a quarter of the ceiling and shows what verification is worth.

What does SMTP code 550 mean?

It is a permanent rejection meaning the mailbox does not exist at that domain. It is the most common hard bounce, and the correct response is to suppress the address across every campaign and mailbox rather than retry it.

What does a 554 bounce mean?

It is a permanent failure that usually points at the sender rather than the recipient: reputation problems, blocklisting or content rejection. Treating 554 responses as bad addresses hides a growing deliverability problem, so investigate sender reputation before touching the list.

How long should soft bounces be retried?

About one to three days. Sending infrastructure retries 4xx responses automatically, and an address that has refused mail for three days should be reclassified as a hard bounce and suppressed for that campaign.

Why is my bounce rate suddenly high?

Look at the pattern. Hard bounces spread across many domains mean an old or unverified list. Bounces concentrated on one domain mean that company changed its mail setup. A wall of 4xx responses from one provider means you are sending too fast, and rising 554s mean a reputation problem.

Popular resources

Lead scrapers for 10+ sources15 best lead generation tools420M+ B2B lead databaseB2B email lists by industryMarketing Agencies cold email templatesRecruiting & Staffing cold email templatesReal Estate cold email templates

More in Deliverability

Dedicated Sending Domains: How to Set Them Up Without Wrecking Your Main OneEmail Bounce Rate: What's Acceptable & How to Fix It (2026)10 Best Pre-Warmed Email Account Providers Compared (2026)Spam Complaint Rate: The One Metric That Ends Cold Email ProgramsGmail, Yahoo and Microsoft Sender Requirements: The 2026 ChecklistWhy Cold Emails Land in Spam: A Diagnostic Order of Operations
Open the full deliverability guide

Customer reviews

2,400+ users. Real results.

Don't take our word for it

Replace your whole lead gen stack

Lead scraping, a 420M+ B2B database, email verification and cold email sending in one subscription. No credits, no seat pricing, cancel anytime.

Start from $19.90/mo
14-day money-back guarantee Instant access 12,400+ teams