Understanding Email Bounces & Delivery Issues
Bounces tell you why an email could not be delivered. Some are temporary and safe to retry. Others mean the address should not be emailed again. Use this guide alongside DNS Setup, Domain Warmup, and Sending Limits when diagnosing delivery problems.
Types of Email Bounces
For the sake of simplicity, bounces are typically grouped into three types: soft, hard, and other. Think of soft bounces like a "you can try again later", hard bounces like a "never gonna happen", and other bounces as "hey something else is going on here".
Soft Bounces (Codes 20-29)
These are temporary failures. The recipient's server is saying "not right now" but might accept the email later. Common causes include:
- Full mailboxes (Code 22)
- Server temporarily down (Code 20)
- DNS failures (Code 21)
- Rate limiting/throttling
- Greylisting (temporary rejection to prevent spam)
Hard Bounces (Code 10)
These are permanent failures - the server is saying this email will never be delivered. Common causes:
- Invalid email address
- Domain doesn't exist
- Recipient account deleted
For these emails, Bento will typically unsubscribe the user and add them to the global firewall.
Other Bounces (Codes 40-59)
These are failures that don't mean the address is invalid, but something else is wrong. Common causes:
- Spam blocks (Codes 50-55)
- Content triggers (Code 52)
- Connection blocks (Code 59)
- Auto-replies (Code 60)
How Retry Schedules Work
When an email soft bounces, most providers (including Bento) will retry delivery on a schedule:
- First attempt: Immediate
- Second attempt: 15 minutes later
- Third attempt: 30 minutes later
- Fourth attempt: 1 hour later
- After that: Every 2-4 hours
Depending on the provider, we may retry earlier or later. Sometimes the providers have maximums that we must respect. The maximum retry period typically extends to 72 hours (Code 120/121).
Common Deferral Scenarios
Temporary Server Issues (450/451 Errors)
- Connection problems (Code 29)
- Server maintenance
- DNS temporary failures (Code 21)
- Typical retry window: 24-48 hours
Greylisting
- Initial temporary rejection
- Usually resolves within first retry
- Maximum retry period: 24 hours
Rate Limiting & Throttling
Let's talk about rate limiting for a minute because this trips up a lot of people. When we talk about "rate limits" we're actually talking about three different things:
-
Connection Rate Limits (Code 29/59) This is when Gmail, Yahoo, or whoever says "slow down, you're connecting to our servers too quickly!" Think of it like someone knocking on your door 100 times a minute - eventually you'll stop answering. When this happens, you'll usually get blocked for a few minutes.
-
Volume Limits This one's straightforward - you're sending too many emails too fast. Every inbox provider has their own rules here. Some might say "only 1000 emails per hour", others might say "no more than 100,000 per day". Go over these limits and they'll typically make you wait a few hours (up to a day) before accepting more.
-
Recipient Limits This is a sneaky one that a lot of people miss. Even if you're under your total volume limits, providers will throttle you if you send too many emails to the same person or domain too quickly. We've seen customers hit this when they send welcome sequences + transactional emails + marketing all at once to new users. When this happens, you're usually locked out for several hours.
At Bento, we handle a lot of this with batching. It is better to pace sends carefully than hit these limits and damage your sending reputation.
Here's a real scenario we encountered:
Industry Standards & Best Practices
At Bento, we follow these guidelines:
- Hard bounces (Code 10) are instantly unsubscribed.
- Soft bounces are only unsubscribed if we believe they are actually a hard bounce (i.e., someone has had a full inbox for a few months).
- We will not unsubscribe reputation or block related bounces.
- Spam blocks (Codes 50-55) don't trigger unsubscribes (Spam Complaints do)
Email Authentication: Not Optional Anymore
Email authentication is required for serious sending. Gmail and Yahoo require senders doing more than 5,000 emails per day to have proper SPF, DKIM, and DMARC records set up. You should do this regardless of volume.
Here's what each piece does:
- SPF: Think of it as a permission slip that says "these servers can send email from my domain"
- DKIM: It's like a digital signature on every email proving it really came from you
- DMARC: Tells receiving servers what to do if an email fails either of these checks
Here's a real example of why this matters:
At Bento, we've been pretty opinionated about this from the start. While some providers say "don't bother until you hit 50,000 subscribers", we encourage everyone to set these up immediately. When we detect your records are live, we automatically start using them. It's better to have good security from day one than try to fix delivery issues later.
What to Do Next
If bounces are increasing:
- Check whether the issue is temporary, permanent, or reputation-related.
- Confirm your SPF, DKIM, and DMARC records in DNS Setup.
- Slow down large campaigns using the guidance in Domain Warmup.
- Clean imported lists before sending with the Import Guide.
- Review whether your current volume fits your Sending Limits.
Bento automatically handles normal hard bounce cleanup, but reputation-related bounces are a signal to slow down and investigate.
