← All guides

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

CodeWhat it meansTemporary?What to do
421Service not available, connection closingYesNothing. Often a rate limit: send more slowly
450Mailbox unavailable right nowYesNothing, the tool retries
451Local error on the receiving server, processing abortedYesNothing. If it lasts, it is filtering in disguise
452Insufficient storage, or too many recipients at onceYesReduce recipients per connection
550Mailbox unavailable — most often, the address does not existNoRemove the address
551User not local to this serverNoRemove the address
552Storage quota exceeded (mailbox full)Depends on the serverCheck the detailed code: 4.2.2 temporary, 5.2.2 final
553Mailbox name not allowed (malformed address, forbidden domain)NoFix or remove the address
554Transaction failed — blanket refusal, often on policy groundsNoRead the text that follows: the real reason is there

The detailed codes that matter

CodeMeaningMost frequent cause
5.1.1Destination address unknownThe address does not exist or was deleted
5.2.2Mailbox full, permanentlyAbandoned mailbox
4.2.2Mailbox full, temporarilyActive but saturated mailbox
5.7.1Delivery not authorized, message refusedRecipient policy: authentication, reputation, content
4.7.0Temporary refusal on policy groundsRate limit, or a hold while you are assessed
5.7.26Insufficient authentication (Gmail)SPF and DKIM missing or unaligned
5.7.515Authentication 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.

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.