Skip to content
Moosewave
Demo
Bounce handling & deliverability

A bounce is a diagnosis, not a verdict.

The mail system did not merely say no. It told you what failed, whether it may recover, and what should change next, if you keep the evidence.

By Moosewave

Published · 10 min read

One email bounce signal passes through a diagnostic instrument and branches toward retry, repair, or suppression.
One failed delivery can point toward retry, repair, or suppression. The evidence decides which path is honest.

Share this article

The short version

Read the reason before choosing the response.

A soft bounce is a temporary delivery failure. A hard bounce is a persistent one. But those labels alone cannot tell you whether to retry, repair, or suppress.

  • 01A 4xx reply says the requested action may succeed later without changing the request. Let the mail system retry with limits and backoff.
  • 02A 5xx reply says the exact request should not simply be repeated. The destination, message, sender configuration, or policy condition must change.
  • 03Suppress when the evidence identifies an invalid destination, not whenever any permanent-looking failure appears.
  • 04Keep the action, enhanced status code, raw diagnostic, recipient, attempt, and history together so every decision can be explained.

Follow one recipient’s full outcome on the Moosewave transactional email API.

The label ate the evidence

“Bounced” sounds like a completed diagnosis. In many dashboards it is only a drawer containing several different facts: the mailbox may not exist, the receiving server may be busy, the message may be too large, authentication may have failed, or a policy may have rejected the sender. The drawer is useful for counting. It is dangerous for deciding.

Imagine a hospital that replaces every test result with one word: unwell. The label is true, but it destroys the part that determines what happens next. Email software often does the same thing when it turns every 5xx response into “bad contact” or every temporary failure into a fresh send.

A bounce is not an opinion about a person. It is evidence about one delivery attempt.

This distinction follows the message past the acceptance receipt described in Delivery is a receipt, not a result. Acceptance, temporary delay, final failure, inbox placement, and attention are separate facts. Keeping them separate is the beginning of useful deliverability evidence.

Read three fields, not one badge

A structured Delivery Status Notification describes the result per recipient. Its Action says what the reporting mail transfer agent did. Its enhanced Status classifies the condition. Its raw Diagnostic-Code preserves the provider’s explanation. Each answers a different question.

The evidence fields used to diagnose an email bounce
EvidenceQuestion it answersExample
ActionIs the mail system still trying, or has it stopped?delayed or failed
Status classIs the condition successful, transient, or permanent?2.x.x, 4.x.x, or 5.x.x
Status subjectWhere is the probable problem?address, mailbox, system, network, content, or policy
DiagnosticWhat did this receiving system actually report?provider reply text and SMTP code
HistoryIs this isolated, repeated, or affecting a wider domain?attempts, timestamps, stream, and provider

RFC 3464 is unusually practical here: a delayed report is not a reason to remove a subscriber. It also cautions that even permanent-looking failures can sometimes come from a temporary condition. Preserve the original recipient and diagnostic instead of forcing imperfect evidence into a confident label.

The second number in an enhanced status code is especially revealing. X.1.x concerns addressing; X.2.x, the mailbox; X.4.x, routing or network conditions; X.6.x, content or media; and X.7.x, security or policy. “Permanent” does not automatically mean “recipient does not exist.”

4xx asks for patience, not pressure

SMTP calls a 4xx reply a transient negative completion. The requested action did not happen, but the same request may work later. A busy receiving server, temporary routing failure, full mailbox, or rate limit can all live in this family. The correct response is time, not force.

Your mail provider normally owns that retry loop. Do not react to one delay event by submitting a second application message while the original remains queued. That recreates the duplicate-send risk from A retry is not permission to send twice, only one layer later.

  1. 01

    Keep one message identity

    Retries belong to the existing recipient attempt, not a newly manufactured email.

  2. 02

    Back off by destination

    A receiving domain asking for less pressure should not be answered with more parallel connections.

  3. 03

    Give the message an expiry

    A security code may become useless in minutes; a receipt can tolerate a longer delivery window.

  4. 04

    Escalate the pattern

    A sudden cluster of deferrals deserves domain and stream diagnosis, not thousands of identical retries.

Google’s current sender guidance makes the same operational point at the traffic level: when messages begin bouncing or being deferred, reduce volume until SMTP errors fall, then increase slowly. Retry policy and sender reputation meet at the receiving server. Backoff is part of deliverability.

5xx asks for a change, not always a deletion

A 5xx reply means the exact SMTP request should not simply be repeated. Something must change. The popular mistake is assuming that something is always the recipient address. The enhanced code tells you where to look.

5.1.1

Destination

The mailbox does not exist. Suppress the exact address and offer a correction path.

5.6.x

Message

Content or media could not be handled. Repair the message; the person is not the defect.

5.7.x

Policy

Security or policy blocked the exchange. Diagnose authentication, permission, reputation, or sender behavior.

Yahoo’s published error guidance illustrates why the distinction matters. Its permanent errors can reflect an invalid address, failed authentication, rejected content, reputation, or another policy condition. One response class contains several owners and several remedies.

An invalid destination should stop future attempts to that address. A policy rejection should pause or repair the affected stream, identity, or domain. Deleting contacts in response to a sender-side fault hides the fault and shrinks the audience without solving it. Repeating the unchanged message ignores the receiver and may make the fault worse.

Suppression should be an explainable state transition

Suppression is often stored as one boolean. That is enough to stop a send, but not enough to understand why it stopped or whether a corrected address can safely return. A useful suppression record keeps its evidence attached.

Recipient
The exact original and normalized address affected by the delivery result.
Reason
Invalid mailbox, complaint, unsubscribe, policy hold, or another distinct cause.
Evidence
Action, enhanced code, raw diagnostic, provider, and message identity.
Time
When the failure occurred, when the state changed, and whether review is due.
Scope
The workspace, channel, stream, or address to which the decision applies.
Correction
Who changed the address or state, what they verified, and what superseded the old evidence.

This is where delivery data becomes audience state. The Moosewave audience system resolves suppression before a campaign or automation sends, while the field note on who you leave out explains why that decision belongs before creative work.

During a platform migration, carry suppression reasons and provenance, not only a flat list of addresses. Otherwise a careful historical decision arrives in the new system as an unexplained prohibition, or disappears and exposes the address to another send.

One event is local. A pattern is operational.

The first view of a bounce belongs to one recipient. The next view belongs to the system around it. Ten nonexistent addresses from one imported list point toward acquisition quality. A wave of 4.7.x deferrals at one mailbox provider points toward traffic, reputation, or policy. One content rejection across every domain points back to the template.

Group outcomes by mailbox provider, sending domain, IP, message stream, template, campaign, integration, and acquisition source. Compare counts with rates and rates with enough volume to mean something. The honest question is not merely “How many bounced?” It is “Which condition changed, for whom, and after what?”

This is why sender reputation is better understood as memory than as a universal number. The history described in Sender reputation is memory, not a score accumulates from the choices around each failure. The analytics workspace makes those patterns visible without pretending that one aggregate can explain every receiver.

Connected data matters too. A corrected account email, CRM update, support conversation, and commerce event should not become competing truths. Moosewave’s integrations preserve the source and chronology of those changes so an automation can respond to current evidence.

Use a decision table, not a bounce reflex

The useful default is deliberately small: wait when the mail system is still trying, retry only when a transient window has ended and the message remains useful, repair sender-side faults, and suppress confirmed invalid destinations. Ambiguity gets a visible review state.

Email bounce response decisions by delivery evidence
EvidenceMeaningDefault response
delayed + 4.x.xTemporary condition; mail system still owns deliveryWait, back off, and monitor
failed + 4.x.xTransient condition outlived the delivery windowRetry later only if the message remains useful
failed + 5.1.1Destination mailbox does not existSuppress the exact address and request correction
failed + 5.6.xContent or media cannot be handledRepair the message; keep recipient state separate
failed + 5.7.xSecurity or policy rejectionDiagnose sender, stream, authentication, and policy
Missing or contradictory evidenceThe system cannot support a confident actionHold for review; preserve the raw event

Delivery events can arrive more than once or out of order. The previous field note, A webhook tells you what happened, explains how to verify, deduplicate, acknowledge, and reconcile that evidence. This table begins after the event is trustworthy.

The product consequence

Moosewave keeps delivery state per recipient, even when one API request or campaign contains many. Every outcome retains its original event, provider message ID, action, normalized enhanced code, raw diagnostic, attempts, timestamps, and decision history. One failed recipient never erases the successful or delayed states of the others.

Transient failures remain on the existing message timeline while bounded provider retries continue. Confirmed invalid destinations create an attributed audience suppression before another sending path can reach them. Content and policy failures open repair work against the message or sending identity instead of blaming the recipient. Unknown evidence remains visible for review.

Those states are shared with lifecycle automations, audiences, analytics, and every connected source. A flow can exit a suppressed address, pause a troubled domain, or wait for a corrected profile without inventing a second version of what happened.

Open the interactive product walkthrough to follow a send from intent through delivery evidence and audience state. Good bounce handling does not make failure disappear. It makes the next decision proportionate to what the receiver actually said.

Frequently asked questions

Direct answers about hard and soft email bounces, SMTP response codes, retries, suppression, and sender reputation.

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

A hard bounce describes a persistent delivery failure, such as a confirmed nonexistent mailbox. A soft bounce describes a temporary condition, such as an unavailable receiving server or a full mailbox. Those labels are a useful summary, but the SMTP status code and diagnostic should determine the next action.

What do SMTP 4xx and 5xx codes mean?

A 4xx reply means the requested SMTP action did not occur but may succeed later without changing the request. A 5xx reply means the exact request should not simply be repeated; something about the destination, message, sender configuration, or policy condition must change.

Should I retry a soft-bounced email?

Usually the sending mail system already retries temporary failures. Do not create a parallel application-level send while that retry is active. If the delivery window expires, retry later only when the message is still useful and your policy permits it.

Should every hard bounce permanently suppress the recipient?

Suppress an address when reliable evidence says the destination itself is invalid. Do not mark a recipient invalid merely because a 5xx response reports a content, authentication, reputation, or policy problem. Preserve the code and diagnostic so the suppression decision remains explainable.

Is a full mailbox a hard bounce or a soft bounce?

Mailbox full is defined in the SMTP enhanced-status registry as a persistent transient failure. It may clear when the recipient makes space, so it should not automatically create a permanent suppression.

Do bounced emails hurt sender reputation?

Repeated hard bounces can harm sender reputation because they suggest poor recipient-list management. The useful response is to suppress confirmed invalid addresses, monitor bounce patterns by source and mailbox provider, and avoid treating one universal percentage as a rule for every receiver.

Sources & method

Protocol and mailbox-provider references

Internet standards define the delivery evidence. Official mailbox-provider documentation shows how receivers apply it in practice. The operating model is Moosewave’s synthesis.

Last reviewed 10 August 2026. Receiver policies and provider classifications change; preserve raw evidence and verify the current documentation for the system you operate.

Continue reading

Make the evidence trustworthy first

The previous field note explains why delivery webhooks are inputs to your message state, not commands that own it.

From field note to next move

Turn the question into a reviewable plan.

Give Moosewave the outcome you want. The goal carries into a guided workspace with its scope, approval points, and evidence still attached.

Journal handoffGuided workspace · no live actions
Enter to preview · Shift + Enter for a new line

Opens a guided workspace. Nothing is sent or changed.

  1. 01UnderstandQuestion and evidence
  2. 02PlanScope and exclusions
  3. 03ApproveExact proposed action
  4. 04VerifyResult and receipt
Keep the evidence attached

Turn every bounce into the right next action.

Explore the connected product, then request Moosewave access and updates.