What do SMTP error codes (550, 421, etc.) actually mean for reporting?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

When an email doesn't get delivered, the receiving server sends back a three-digit SMTP code explaining why. Your ESP reads that code and translates it into "hard bounce" or "soft bounce" in your report. Understanding the codes yourself means you can tell whether a delivery problem is permanent or temporary before your ESP tells you.

The two families you need to know: 5xx codes are permanent failures. 4xx codes are temporary. It's that simple as a starting point.

Common 5xx codes: 550 is the most frequent hard bounce you'll see. It means the address doesn't exist or was rejected by policy. 551 means the user isn't local and the server won't forward. 554 means the transaction failed for various reasons, often spam or authentication rejection. Any 5xx code tells your ESP to suppress that address and stop retrying.

Common 4xx codes: 421 means the service is temporarily unavailable (the server is overloaded or rate-limiting your connection). 452 means insufficient storage, which usually means the recipient's mailbox is full. 4xx codes trigger a retry, typically for 24-72 hours. If retries keep failing, many ESPs convert the address to a hard bounce status after a set number of attempts.

Where this matters for reporting: if your ESP lumps all bounces together without showing codes, you lose visibility into what's fixable. A 550 (invalid address) and a 421 (server temporarily busy) require completely different responses. If you can see raw codes in your logs, you can triage your bounce rate accurately. If you're reading email headers to debug a specific delivery failure, our free Email Header Analyzer can help.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Get help interpreting your SMTP bounce codes.

I read this on the Email Almanac about SMTP error codes and what they mean for email delivery reporting. Help me understand the bounce codes appearing in my own sending logs: 1. What do the specific SMTP codes I'm seeing mean for my list quality? 2. Should I be suppressing addresses based on certain code patterns? 3. How can I get better visibility into my bounce codes inside my ESP? --- My details: - ESP: e.g. SendGrid, Postmark, Mailgun, Mailchimp - SMTP codes I'm seeing: e.g. 550, 421, 452, or 'I only see hard/soft labels' - Current bounce rate: total and hard bounce % if known - Email type: transactional, marketing, automated - Can I see raw bounce codes in my ESP: yes, no, not sure - Any specific error messages I'm seeing: e.g. 'User unknown', 'Mailbox full'

Edit the yellow boxes, then send to the AI of your choice.