# Bounce

> Hard bounce, soft bounce, and policy block are three different failures. Confusing them destroys deliverable addresses; here is how to tell them apart.

Canonical: https://emailfast.dev/glossary/bounce

A bounce is a receiving server's report that it could not, or would not, deliver your email. The word hides three different events: a hard bounce (the address is permanently bad), a soft bounce (a temporary condition), and a policy block (the receiver is refusing *you*, not the address).

## Why it matters

Bounce classification drives the [suppression list](/glossary/suppression-list), and the failure modes are asymmetric. Retrying a hard bounce annoys no one but erodes your reputation, since repeatedly hitting dead mailboxes is spammer behavior. Suppressing on a policy block is worse: the addresses are valid, the rejection was about your IP or content, and a classifier that treats "blocked due to sending reputation" as address death quietly destroys thousands of real, deliverable subscribers in a single incident.

## In practice

| Class | Example | Right response |
| --- | --- | --- |
| Hard | `550 5.1.1 user unknown` | Suppress immediately |
| Soft | `452 4.2.2 mailbox full`, greylisting | Retry on a schedule; suppress only after repeated failures |
| Policy block | `554 5.7.1 blocked due to sender reputation` | Fix the sending problem; do not touch the address |

The SMTP enhanced status code carries most of the signal (`5.1.x` is an address problem, `5.7.x` is a policy problem), but real receivers are inconsistent, so serious classifiers also parse provider-specific reply text.

## How Email Fast handles it

Email Fast's classifier separates the three using enhanced status codes plus provider-specific reply patterns. Hard bounces suppress instantly, soft bounces retry with backoff, and a policy block never suppresses an address: it feeds the reputation breaker instead, which slows or pauses sending toward that provider until the block clears. Bounces are matched to the exact message via [VERP](/glossary/verp).
