If you are searching for , the practical question is not just "what do the terms mean?"
The practical question is which failures deserve:
- a retry
- suppression
- sender-configuration work
- recipient-data cleanup
- escalation to engineering or deliverability owners
That distinction matters because bounce handling is one of the fastest ways to improve or damage sender health.
Quick answer
A soft bounce is usually a temporary delivery failure.
A hard bounce is usually a permanent delivery failure.
In practice:
- soft bounces may recover on retry
- hard bounces usually should not be retried without a real fix
Examples:
- mailbox full, temporary server outage, or throttling often behaves like a soft bounce
- invalid recipient, nonexistent domain, or explicit policy rejection often behaves like a hard bounce
The tricky part is classification. The words "soft" and "hard" are useful operational categories, but the real decision should come from the SMTP status, enhanced code, provider event, and message context.
Why bounce classification matters
Teams often treat bounces in one of two bad ways:
- retry everything
- suppress everything
Both are costly.
Retrying hard bounces:
- wastes send volume
- makes sender behavior look careless
- increases reputation risk
- delays cleanup of bad recipient data
Suppressing soft bounces too quickly:
- removes valid users
- hides infrastructure or throttling problems
- reduces reach unnecessarily
- creates confusing support issues when the address was never truly invalid
So the real value of is not vocabulary. It is decision quality.
The fastest way to separate them
Use this table as a starting point:
| Signal | Usually means | Likely class | Default action |
|---|---|---|---|
| mailbox full | recipient cannot currently accept mail | soft bounce | retry with limits |
| server temporarily unavailable | transient infrastructure issue | soft bounce | retry with backoff |
| throttling or rate limiting | provider pressure or pacing issue | soft bounce | slow down and retry |
| user unknown | mailbox does not exist | hard bounce | suppress and fix data |
| domain does not exist | invalid destination domain | hard bounce | suppress and correct source data |
| relay denied or auth failed | sender configuration problem | often hard for current attempt | fix configuration before retry |
| blocked due to policy | sender trust, auth, or reputation problem | often hard until fixed | investigate sender posture |
This table is not a replacement for the exact provider reason, but it gives you a much better first decision than "it bounced, so resend later."
What a soft bounce usually means
A soft bounce means the message could not be delivered right now, but the condition may clear.
Common soft-bounce patterns:
- mailbox full
- receiving server temporarily unavailable
- greylisting
- throttling
- transient DNS or route issue
- connection timeout
Soft bounce examples in practice
Mailbox full
The address exists, but the mailbox cannot currently take the message.
This is a recipient-side issue, not proof the address is bad.
Temporary provider outage
The recipient system or an intermediate system may be unstable. If the sender retries intelligently, delivery may succeed later.
Throttling
Mailbox providers and gateways often defer or slow mail when volume, reputation, or pacing patterns exceed what they want to accept immediately.
This is where teams misread a temporary condition as a recipient failure when the real issue is sender behavior.
What a hard bounce usually means
A hard bounce means the message failed in a way that is not likely to be corrected by simple retry.
Common hard-bounce patterns:
- user unknown
- mailbox does not exist
- domain does not exist
- invalid recipient syntax after normalization
- explicit permanent policy rejection
- permanent relay or auth failure for the current sender setup
Hard bounce does not always mean "bad email address"
This is an important nuance.
Some hard bounces are recipient-data problems.
Others are sender problems that are effectively permanent until you fix them, such as:
- DMARC enforcement rejection
- SPF or DKIM alignment problems
- relay denied by the submission server
- message rejected due to domain policy
So the correct response is not always "remove the user." Sometimes it is "fix the sending system."
Why SMTP codes matter more than bounce labels
Different providers classify events differently.
One provider may label an event as a hard bounce where another surfaces a rejection reason with more nuance. That is why operational teams should look at:
- SMTP code
- enhanced status code
- raw bounce reason
- provider-specific rejection text
- whether the message ever entered the provider queue
The human-friendly label is helpful. The evidence behind it is what determines the correct response.
Common soft-bounce scenarios and what to do
Temporary inbox or server condition
Action:
- retry with backoff
- monitor repeat frequency
- stop after an explicit retry ceiling
Do not let a temporary issue become an endless retry loop.
Rate limiting and throttling
Action:
- reduce concurrency
- slow campaign or workflow pace
- inspect domain reputation and content quality
- compare whether only one provider is deferring mail
This is where a "soft" bounce starts pointing to a sender-operations problem.
Greylisting
Action:
- let a compliant retry process do its job
- do not suppress the address immediately
Common hard-bounce scenarios and what to do
Invalid or nonexistent recipient
Action:
- suppress the address
- correct the source record if possible
- review how the bad address entered the system
Nonexistent domain
Action:
- suppress the address
- investigate whether the address was misspelled or came from poor data collection
Sender policy rejection
Action:
- inspect SPF, DKIM, and DMARC
- check relay and auth configuration
- do not keep retrying the same broken path
Useful next steps:
When soft bounces become suppression candidates
Not every soft bounce should stay retryable forever.
A good suppression policy usually considers:
- how many consecutive soft bounces occurred
- over what time period
- whether the reason is stable or changing
- whether the recipient is critical or low-value
- whether the issue is recipient-specific or sender-wide
Examples:
- one temporary
deferral should not trigger suppression - repeated mailbox-full events across weeks may need review
- recurring throttling across a large segment points to a sender problem, not a recipient-list problem
This is why bounce policy should be tied to both recipient lifecycle and sender operations.
Why soft vs hard bounce handling affects deliverability
Mailbox providers watch sender behavior.
If you keep sending to bad recipients, that can signal poor list quality and weak controls.
If you mis-handle temporary failures, you can:
- create unnecessary churn
- lower valid reach
- misread provider health
- miss signals of throttling, reputation pressure, or auth drift
So bounce handling is not back-office hygiene only. It is part of inbox performance.
Bounce handling during product workflows
For SaaS and product teams, bounce handling should differ by workflow.
Examples:
- signup confirmation failures may need user-facing remediation quickly
- billing notifications need stronger retry and escalation logic
- marketing sends need suppression discipline at scale
- password resets need careful classification because a temporary deferral is very different from an invalid address
If all mail types share the same bounce logic, teams usually either over-suppress or under-react.
A practical bounce workflow
Use this sequence:
- capture the exact SMTP or provider reason
- decide whether the failure is temporary or permanent
- determine whether the cause is recipient-side or sender-side
- apply retry or suppression policy based on that evidence
- monitor whether the pattern is isolated or systemic
This is the step most teams skip:
before suppressing an address, ask whether the message failed because of the address or because your sender posture was broken that day.
How MailSlurp helps
MailSlurp matters because bounce handling is hard to improve if you cannot reproduce the behavior safely.
Use it to:
- simulate bounce paths with soft and hard bounce testing
- validate recipient quality and routing assumptions with Email checker
- test end-to-end sender health with Email deliverability test
- inspect the message path with Email header analyzer
- test SMTP behavior in isolation with SMTP tester
That helps teams answer questions such as:
- did the message fail because the recipient is invalid
- did the sender path fail auth or policy
- would the retry logic have behaved correctly
- are we suppressing too aggressively
Soft bounce vs hard bounce in one sentence
If the failure may recover, think soft bounce and controlled retry.
If the failure will not recover without a real change, think hard bounce and fix or suppress before sending again.
FAQ
What is a soft bounce?
A soft bounce is a temporary delivery failure. The recipient address may still be valid, and delivery may succeed later.
What is a hard bounce?
A hard bounce is a permanent delivery failure for the current message path. It usually means the message will not succeed without a real fix.
Is mailbox full a soft bounce or a hard bounce?
Usually a soft bounce, because the mailbox may accept mail later.
Is user unknown a hard bounce?
Usually yes. If the mailbox does not exist, retrying does not help.
Should I retry hard bounces?
Usually no. First determine whether the issue is recipient data or sender configuration. Blind retries to hard-bounce conditions are usually a bad idea.
Can a policy rejection be treated like a hard bounce?
Operationally, yes for the current attempt. The fix is often on the sender side, such as SPF, DKIM, DMARC, relay, or reputation remediation.