Reading a bounce, digit by digit
421, 450, 550, 552, 554: what each refusal means, whether it is temporary, and what to do.
8 min read
When a server refuses your email, it answers with a three-digit number, often followed by a second, more precise code. The first digit is enough to know what to do: 4 means « try again later », 5 means « do not insist ». The rest of this page covers what each code means, and the four you will actually meet.
The first digit tells you everything
- 4xx — temporaryTry again later. Your sending tool does it on its own, usually for several hours. There is nothing for you to do.
- 5xx — finalDo not insist. If the address is at fault, remove it from your list — every further attempt works against you.
Three-digit codes
| Code | What it means | Temporary? | What to do |
|---|---|---|---|
421 | Service not available, connection closing | Yes | Nothing. Often a rate limit: send more slowly |
450 | Mailbox unavailable right now | Yes | Nothing, the tool retries |
451 | Local error on the receiving server, processing aborted | Yes | Nothing. If it lasts, it is filtering in disguise |
452 | Insufficient storage, or too many recipients at once | Yes | Reduce recipients per connection |
550 | Mailbox unavailable — most often, the address does not exist | No | Remove the address |
551 | User not local to this server | No | Remove the address |
552 | Storage quota exceeded (mailbox full) | Depends on the server | Check the detailed code: 4.2.2 temporary, 5.2.2 final |
553 | Mailbox name not allowed (malformed address, forbidden domain) | No | Fix or remove the address |
554 | Transaction failed — blanket refusal, often on policy grounds | No | Read the text that follows: the real reason is there |
The detailed codes that matter
| Code | Meaning | Most frequent cause |
|---|---|---|
5.1.1 | Destination address unknown | The address does not exist or was deleted |
5.2.2 | Mailbox full, permanently | Abandoned mailbox |
4.2.2 | Mailbox full, temporarily | Active but saturated mailbox |
5.7.1 | Delivery not authorized, message refused | Recipient policy: authentication, reputation, content |
4.7.0 | Temporary refusal on policy grounds | Rate limit, or a hold while you are assessed |
5.7.26 | Insufficient authentication (Gmail) | SPF and DKIM missing or unaligned |
5.7.515 | Authentication required (Microsoft) | Bulk sender without compliant SPF, DKIM and DMARC |
The three-digit codes are defined by RFC 5321, the detailed codes such as 5.1.1 by RFC 3463. No provider invents them: that is why the same code means the same thing at Gmail, at your ISP and at your client's.
The four you will actually meet
550 5.1.1 — the address does not exist
550 5.1.1 The email account that you tried to reach does not exist: the server looked for the mailbox and did not find it. The refusal is final, and the only thing to do is remove the address from your list. It will not become valid again.
The causes are always the same: the person left their company or closed their account, a typo at signup (gmial.com, one dot too many), a throwaway address created to receive one document, or a domain that stopped existing.
Never retry. Every send to an address that answers 550 is recorded as a send to a non-existent mailbox: it is one of the signals that separate a maintained list from a bought one. Some providers even turn long-abandoned addresses into spam traps.
421 4.7.0 — you are sending too fast
A temporary refusal: the server closes the connection, often because it is receiving too many messages from you in too little time, or because it is holding you while it makes up its mind.
There is nothing to fix in your message. Your sending tool retries on its own, spacing out attempts. If the refusal lasts for days, it is no longer a rate limit: it is filtering that does not say its name, and it is settled on the authentication and reputation side.
552 and 5.2.2 — the mailbox is full
The recipient is over their storage quota. This is the one case where the detailed code changes everything: `4.2.2` is temporary — the mailbox is active but saturated, it will empty — while `5.2.2` is final — the mailbox is abandoned.
In practice, a mailbox that stays full for weeks is one nobody reads any more. Treating it as a dead address after a few attempts beats writing to someone who will not read you.
554 5.7.1 — refused on policy grounds
The richest in information, and the most badly read. The server has nothing against the address: it has something against you, your message, or where it came from. The text after the code almost always says why — read it in full, it is more useful than the code itself.
If it mentions authentication (SPF, DKIM, DMARC, unauthenticated, does not meet the required authentication level): a record is missing, or alignment is wrong. At Gmail this case often carries 5.7.26, at Microsoft 5.7.515.
If it mentions reputation or blocking (blocked, blacklisted, poor reputation, spamhaus, or a web address to visit): your domain or IP is listed somewhere, and there is a three-step procedure for that.
If it mentions content or policy (content, policy) and nothing else: the server is applying a rule of its own. There is no technical fix; there is a relationship to rebuild, with less volume and people who open.
The rule to remember
A bounce is not a breakdown, it is information. The one move that genuinely makes things worse is retrying a 5xx: every attempt at a dead address hurts where all your other messages land.
Words from this guide
Bounces, in plain words
Plumail shows the reason for every bounce in the campaign detail, and removes permanently invalid addresses without you thinking about it. 3,000 emails a month, no credit card.