How do ESPs categorize bounce types?
Still have a question, spotted an error, or have a better explanation or a source we should cite?
You send an email and it comes back. That much you know. But what comes back with it is actually a small packet of information that tells your ESP exactly why it failed. That's where bounce categorization begins.
Every receiving mail server sends back an SMTP response code when it rejects a message. Your ESP reads that code (and often the message text attached to it) and sorts the bounce into a category. Here's what those categories mean in plain English.
Hard bounces are permanent failures. The address doesn't exist, the domain is gone, or the server has made a final decision that this recipient will never receive your mail. Suppress these immediately. Continuing to send to hard-bounced addresses is a fast way to damage your sender reputation, and most ESPs will suppress them for you automatically after the first hit. Classic examples: "User unknown," "Domain does not exist."
Soft bounces are temporary failures. The address is real, but something got in the way. The mailbox was full, the server was temporarily unavailable, or the message was too large. Your ESP will typically retry these over a window of hours or days. If a soft bounce keeps happening across several retry attempts, most systems will eventually convert it to a suppression anyway. Don't panic on the first soft bounce, but do watch for patterns.
Block bounces are a category worth paying close attention to. These happen when the receiving server rejects your message based on your sender reputation, your IP address, or a policy rule. You might see messages like "Your IP is on a blocklist" or "Message rejected due to content policy." Blocks can be temporary or permanent depending on the cause. A single block from one provider on one send is not an emergency. Blocks showing up consistently across multiple providers is a signal that something is wrong upstream (poor list hygiene, authentication gaps, engagement problems).
Technical bounces are infrastructure-level failures. DNS resolution errors, connection timeouts, TLS handshake failures. These usually aren't about your reputation at all. They're noise, but if you see a sudden spike in technical bounces to a specific domain, it may mean that domain's mail infrastructure is having a rough day.
How does your ESP actually sort these? It reads the numeric SMTP response code first. A 5xx code signals a permanent failure, which maps to hard bounces. A 4xx code signals a temporary failure, which maps to soft bounces. Then it reads the enhanced status code (the three-part X.Y.Z number that gives more detail) and the message text itself, often using pattern-matching against a library of known provider signatures. Some ESPs like Postmark and Mailgun expose this classification detail directly in their APIs, so you can build your own suppression logic if you need to.
The practical takeaway is simple. Hard bounces get suppressed on the first occurrence. Soft bounces get retried, then suppressed if they persist. Block bounces need investigation if they're recurring or widespread. Technical bounces mostly get ignored unless they're spiking.
Still if your bounce rate is climbing and you're not sure whether it's a list quality problem or a reputation problem, a list clean is often the fastest way to find out what's actually in your data. Or if something's actively breaking, our SOS hotline is free.
Contributors
Who worked on this answer
Every name links to their profile. Every company links to their site. Real people, real accountability.