Here’s the trick to reading email bounce codes: the first digit tells you most of what you need. A code starting with 5 (like 550 or 554) is a permanent failure — a hard bounce — and no amount of retrying will get that message delivered. A code starting with 4 (like 421 or 450) is a temporary failure — a soft bounce — and your mail server will quietly retry on its own. The digits after that narrow down the reason: dead address, full mailbox, spam filter, overloaded server.
The full decode table is just below. Find your code, read the row, and you’ll know whether to delete the address, wait it out, or fix something on your own end.
How to read a bounce code
When your mail server delivers a message, it holds a short scripted conversation with the receiving server, and the receiving server answers every step with a three-digit code plus a line of text. If any answer is a rejection, that code is what lands in your bounce notice. These are the SMTP error codes every email bounce is built from, and they’re defined in the SMTP standard itself (RFC 5321), which is why the same numbers show up whether the recipient uses Gmail, Outlook, or a company server.
Most servers also add a second, more precise code in the format 5.1.1 — three numbers separated by dots, from a companion standard called RFC 3463. Read it as class.category.detail. The first number repeats the permanent-or-temporary verdict. The second names the problem area (1 is addressing, 2 is the mailbox itself, 7 is policy and security). The third pins down the exact case. So 550 5.1.1 reads: permanent failure (5), addressing problem (1), bad destination mailbox (1). In plain words, the address doesn’t exist.
You’ll find these codes inside the automated failure message from “mailer-daemon” or “Mail Delivery Subsystem,” usually after a phrase like “the remote server said:”. If you want a tour of that whole message — including why you sometimes receive them for emails you never sent — we’ve covered mailer-daemon emails separately. This post decodes the number inside it.
One warning before the table: the text next to the code is written by whoever runs the receiving server, so it ranges from clinical to cryptic. The numbers are the standardized part. Trust the numbers.
Email bounce codes, decoded
| Code | What it means | Hard or soft | What to do |
|---|---|---|---|
| 550 | Mailbox unavailable. In practice, almost always “this address doesn’t exist” — the classic invalid-address rejection. | Hard | Remove the address from your list. Don’t retry. |
| 550 5.1.1 | User unknown. No mailbox with that name exists at the domain. The most common bounce code of all. | Hard | Remove the address. If it belongs to a contact you know is real, check for a typo first. |
| 551 | User not local / relay denied. This server won’t accept or forward mail for that recipient. | Hard | Remove or correct the address. Seeing it across many recipients? Your sending setup is routing mail wrongly — ask whoever manages it. |
| 552 | Storage limit exceeded. The recipient’s mailbox is full, or your message is larger than their server allows. | Soft in practice | Let your platform retry. If a large attachment caused it, shrink the message. Still bouncing after weeks? The mailbox is abandoned — remove it. |
| 553 | Mailbox name not allowed. The address itself is malformed — bad characters, missing parts, broken syntax. | Hard | Fix the typo if you can spot it; otherwise remove the address. |
| 554 | Transaction failed. A catch-all rejection, most often a spam or policy block against your content, IP, or domain. | Hard | Don’t blame the address. Check your sender reputation, content, and authentication (see the 5.7.1 row). |
| 421 | Service unavailable, try again later. The server is busy, throttling you, or greylisting — deliberately deferring unfamiliar senders. | Soft | Nothing; your server retries automatically. Many 421s at once means you’re being throttled — slow your sending rate. |
| 450 | Mailbox temporarily unavailable. It’s busy, locked, or the server wants a retry before accepting (greylisting again). | Soft | Wait for the automatic retries. Investigate only if the same address is still bouncing days later. |
| 451 | Local error in processing. Something failed on the receiving side — also the most common greylisting code. | Soft | Wait. Most 451s deliver on the second attempt without you lifting a finger. |
| 452 | Insufficient storage, or too many recipients in a single message. | Soft | Retry later; if you’re batching many recipients per message, use smaller batches. |
| 5.7.1 (and other 5.7.x) | Delivery not authorized. A policy or authentication failure: SPF/DKIM/DMARC problems, a blocklisted IP, or content rules. | Hard, but fixable | Fix your setup, not your list — start with SPF, DKIM, and DMARC. |
Two rows deserve a caveat.
552 is a 5xx code that behaves like a 4xx. A full mailbox usually gets emptied eventually, so nearly every mail system treats 552 as a soft bounce and retries — despite the permanent-looking first digit. The exception is a size rejection: retrying the same oversized message won’t help.
554 doesn’t always mean spam. It’s the “transaction failed” catch-all, and some large providers use it where you’d expect a 550. Yahoo, for instance, is known for returning 554 for addresses that simply don’t exist. Read the text beside the code before concluding you’ve been flagged as a spammer.
The three actions that cover everything
Scroll back through the “what to do” column and you’ll notice every entry boils down to one of three moves.
1. Address is dead (550, 550 5.1.1, 551, 553): remove it immediately and never re-add it. The mailbox isn’t coming back, and repeatedly sending to known-dead addresses is one of the strongest spammer signals a mailbox provider can see. The full reasoning is in our guide to hard bounces vs soft bounces, but the short version: suppress it and move on.
2. Temporary trouble (421, 450, 451, 452): let your platform retry. It already does — automatically, usually for a few days — so there’s nothing to click. Manual action is only worth it when the same address keeps soft-bouncing campaign after campaign. A mailbox that’s been “temporarily” full since March is abandoned; treat it as dead.
3. Policy or authentication rejection (554, 5.7.x): fix your setup, not your list. These bounces aren’t about the recipient at all. Deleting subscribers won’t change anything; setting up authentication properly, warming up your domain, and slowing your sending rate will.
That’s genuinely the whole playbook. Bounce handling feels intimidating because the codes look technical, but the responses are few and mechanical.
Most 550s never needed to happen
A 421 is the receiving server’s mood. A 550 is a fact about your list — it means an address that doesn’t exist made it on and stayed there until send time. Typos at signup, contacts who changed jobs, fake entries from discount hunters: they accumulate in every list, and we’ve broken down what actually happens when you email an invalid address — the one-off is harmless, the pattern is not.
The prevention is straightforward. Verifying a list checks each address against its mail server without sending anything, so the 550s and 553s come off your list before the campaign instead of showing up as bounces after it. That’s often the difference between staying under the bounce-rate thresholds providers care about and watching your legitimate mail drift into spam.
Reoon Email Verifier gives you free verification credits every day — no card required — so you can run part of your list through it and see what it flags before committing to anything. Invalid mailboxes, broken syntax, full inboxes, dead domains: the exact problems behind the hard-bounce rows above, caught before the send.
FAQ
What does 550 5.1.1 mean?
It means the mailbox doesn’t exist — servers often word it as “user unknown” or “no such user here.” The 550 marks a permanent failure and the 5.1.1 specifies a bad destination mailbox address. Treat it as a hard bounce: remove the address, and if it belongs to someone you know is real, check the spelling or ask them for a current address.
Is a 554 error always spam-related?
No. 554 is a catch-all “transaction failed” code. It often is a spam or policy block — your content, IP, or domain triggered a filter — but some providers also use it for plain nonexistent addresses. The text next to the code settles it: mentions of spam, reputation, or policy point to your setup; “no such user” wording means an ordinary dead address.
Should I retry addresses that returned 421?
Yes, and it happens without you: 421 explicitly invites a retry, and sending servers repeat the attempt automatically over the following hours and days. If delivery still fails at the end of that window, you’ll receive a final bounce. What deserves your attention is a pile of 421s within one campaign — that’s throttling, and the answer is a slower sending rate, not harder retrying.
Do bounce codes look the same on Gmail and Outlook?
The numbers do; the wording doesn’t. The numeric codes come from a shared standard, so a 550 means the same thing everywhere. Each provider wraps it in its own text — Gmail appends long explanations pointing to its sender guidelines, Microsoft adds internal reference identifiers. When the wording confuses you, ignore it and decode the numbers with the table.






