> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sendkit.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Bounce Handling

> Learn the difference between hard and soft bounces and how to handle them.

## What is a bounce?

A bounce happens when an email can't be delivered to the recipient. The receiving mail server sends back a notification explaining why the delivery failed. Bounces are a normal part of sending email, but high bounce rates damage your [sender reputation](/academy/deliverability/sender-reputation).

## Types of bounces

### Hard bounce

A hard bounce is a **permanent** delivery failure. The email will never be deliverable to this address. Common causes:

| Cause                 | Example                                              |
| --------------------- | ---------------------------------------------------- |
| Address doesn't exist | `nobody@acme.com` — no such mailbox                  |
| Domain doesn't exist  | `hello@nonexistent.com` — domain has no MX records   |
| Blocked by recipient  | The receiving server permanently rejects your emails |

**What to do:** Remove hard-bounced addresses immediately. Never send to them again. Continuing to send to hard-bounced addresses signals to email providers that you don't maintain your list.

### Soft bounce

A soft bounce is a **temporary** delivery failure. The email might be deliverable if you try again later. Common causes:

| Cause                          | Example                                         |
| ------------------------------ | ----------------------------------------------- |
| Mailbox full                   | Recipient's inbox has reached its storage limit |
| Server temporarily unavailable | Receiving server is down or overloaded          |
| Message too large              | Email exceeds the recipient's size limit        |
| Rate limited                   | Receiving server is throttling your deliveries  |

**What to do:** SendKit automatically retries soft bounces. If an address soft bounces **3 times**, SendKit automatically suppresses it — treating it as a hard bounce. On successful delivery, the soft bounce counter resets.

## Bounce codes

Bounce notifications include SMTP status codes that explain the failure. The codes follow a pattern:

| Code  | Category    | Meaning                                             |
| ----- | ----------- | --------------------------------------------------- |
| 5.1.1 | Hard bounce | Address doesn't exist                               |
| 5.1.2 | Hard bounce | Domain doesn't exist                                |
| 5.2.1 | Soft bounce | Mailbox full / disabled                             |
| 5.2.2 | Soft bounce | Over quota                                          |
| 5.3.0 | Soft bounce | Other mail system issue                             |
| 5.4.1 | Soft bounce | No answer from host                                 |
| 5.7.1 | Hard/Soft   | Rejected by policy (could be content or reputation) |

The first digit indicates the category:

* **4.x.x** — temporary failure (soft bounce)
* **5.x.x** — permanent failure (hard bounce, with some exceptions)

## Bounce handling in SendKit

SendKit handles bounces automatically:

### Hard bounces

1. The email is marked as **bounced** in your dashboard
2. The `email.bounced` webhook is triggered
3. The address is added to the [suppression list](/academy/email-concepts/suppression-lists) — future sends to this address are automatically blocked

### Soft bounces

1. SendKit retries delivery automatically
2. If delivery succeeds on retry, the email is marked as **delivered** and the soft bounce counter for that address resets
3. If all retries fail, the email is marked as **bounced**
4. After **3 soft bounces** to the same address, it's automatically added to the suppression list

### The suppression list

The suppression list prevents you from sending to addresses that have previously hard bounced. This is critical for maintaining your reputation. If you try to send to a suppressed address, SendKit blocks the send and returns an error.

<Warning>
  Do not remove addresses from the suppression list unless you have confirmed the address is now valid (e.g., the recipient contacted you to confirm). Repeatedly sending to invalid addresses will damage your reputation.
</Warning>

## Bounce rate thresholds

| Bounce rate | Status         | Action                                             |
| ----------- | -------------- | -------------------------------------------------- |
| \< 5%       | Healthy        | Normal operations                                  |
| 5–10%       | Warning        | Review your list hygiene                           |
| > 10%       | Sending paused | SendKit automatically pauses sending for your team |

SendKit evaluates reputation with a minimum of 200 emails in the last 24 hours. If your bounce rate exceeds **10%**, sending is automatically paused and your team admins are notified.

## Preventing bounces

### At collection

* **Validate email addresses at signup** — use the SendKit [email validation API](/api-reference/endpoint/validate-email) to catch typos and invalid addresses before they enter your list
* **Use double opt-in** — send a confirmation email and only add contacts who confirm. This eliminates typos and fake addresses
* **Don't accept catch-all addresses blindly** — some domains accept all emails regardless of the mailbox. These can still bounce later

### Ongoing

* **Clean your list regularly** — remove addresses that haven't engaged in 90+ days
* **Monitor bounce metrics** — check your dashboard after every campaign or batch send
* **Honor suppression lists** — never circumvent the suppression list

## FAQ

<AccordionGroup>
  <Accordion title="What's a good bounce rate?">
    Under 2%. If you're consistently above 2%, you need to improve your list hygiene. Above 5% is critical and can result in email providers throttling or blocking your emails.
  </Accordion>

  <Accordion title="Should I retry hard bounces?">
    No. Hard bounces are permanent. Retrying wastes resources and hurts your reputation. Remove hard-bounced addresses from your list immediately.
  </Accordion>

  <Accordion title="Why did an address that used to work start bouncing?">
    Email addresses become invalid over time. People leave companies, abandon personal accounts, or reach storage limits. This is why regular list cleaning is important — even a "clean" list degrades over time.
  </Accordion>

  <Accordion title="Can I get unbounced addresses back?">
    If a hard-bounced address is now valid again (e.g., the mailbox was recreated), you can remove it from the suppression list in your SendKit dashboard. But verify it first — don't assume.
  </Accordion>
</AccordionGroup>
