What do 5xx SMTP error codes mean? (Permanent failures)

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

A 5xx SMTP code is the receiving server telling you no, and meaning it. The connection is open, the server understood you, and it has decided this message will not be delivered. Retrying changes nothing. The decision is final until something on your side or the recipient's side changes.

This is the opposite of a 4xx, which is a temporary deferral. If you are not clear on that split, read 4xx vs 5xx error codes first, because treating a 5xx like a 4xx is how senders end up hammering a mailbox provider with retries on dead addresses and tanking their reputation.

What the receiving server is actually saying

RFC 5321 section 4.2.1 defines the 5yz class as "Permanent Negative Completion reply." The command was not accepted, the action did not happen, and the SMTP client (your sending server) should not repeat the exact request. The same RFC tells you to take 5xx as permanent unless the bounce text obviously contradicts it.

Some receivers do bend this. Gmail and Outlook occasionally throw a 5xx when they mean "slow down for a while." But you should default to treating 5xx as permanent and only loosen that if the human-readable text in the response says otherwise.

The codes you will actually see

The second and third digits tell you more than the leading 5 does. The ones that show up in real bounce logs:

  • 550 is the workhorse. Mailbox does not exist, mailbox is disabled, or the receiver is rejecting you for policy reasons (bad reputation, content blocked, sender not authenticated). Read the text after the code, because "550 5.1.1 user unknown" and "550 5.7.1 message rejected due to content" mean completely different things.
  • 551 means the user is not local to this server and no relay is available. You almost never see this in 2026 because open relays are extinct.
  • 552 means the message exceeded a size limit, usually on attachments. Strip the attachment or host it and link.
  • 553 means the address syntax is rejected, typically because the mailbox name has characters the server will not allow.
  • 554 is the catch-all. "Transaction failed." The detail is in the text: blocklist hits, SPF/DKIM/DMARC failure, content filter, IP reputation. Gmail uses 550 for most of this; many other providers reach for 554.

The extended status codes after the basic code (the 5.x.x pattern, defined in RFC 3463) are usually more useful than the base code. 5.1.1 is bad mailbox. 5.7.1 is policy or authentication. 5.2.2 is mailbox full (which most servers correctly issue as 4.2.2, but not all). Learn to read the enhanced code.

What you do about it

Two paths, depending on what the code is telling you.

If it is a recipient problem (550 user unknown, 553 bad syntax, 5.1.x family), suppress that address. Do not send to it again. It does not exist, or it will never accept you. Your ESP probably did this automatically and converted it to a hard bounce; confirm in your suppression list.

If it is a sender problem (554 policy, 550 with reputation or content language, 5.7.x family), the address is fine. You are the problem. Fix authentication, fix the content, fix the IP reputation, or fix whatever the bounce text is pointing at. Retrying without fixing anything just generates more identical bounces and looks worse to the receiver. For how this rolls up into deliverability damage, see how bounces affect deliverability metrics.

If you want the full code list at hand, Google's postmaster error reference covers what Gmail returns and why, which is a decent map for what most providers do.

One last thing. Read the text. The number tells you the category. The text tells you the actual reason. Senders who only read the number end up suppressing addresses that were never broken, or retrying messages that will never deliver.

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

Learn what 5xx codes mean & how to fix them.

I'm getting 5xx SMTP error codes when sending emails. What do these permanent failure codes mean, and which ones should I know about?

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