What is a 550 bounce code?

550 bounce code, defined
550 is the SMTP reply for a permanent rejection, most often meaning the mailbox does not exist, and it is the clearest signal an email verifier can receive.

The enhanced status code in the response narrows it down. A 5.1.1 means the mailbox was not found. A 5.7.1 means the message was refused for policy reasons, which is about your sending, not their inbox.

Common text after the code includes User unknown, No such user here, and Recipient address rejected: User unknown in virtual mailbox table. All three mean the same thing and come from different mail software.

Some servers return 550 to any probe as an anti-enumeration measure, rejecting everything at RCPT TO and sorting it out at delivery. That is rare and produces false negatives, which is why the response text gets read rather than just the number.

A 550 on a real send means suppress the address immediately. Every sending platform does this automatically, and mailing through one afterwards requires deliberately overriding a safety.

How ZapBounce reports it

A 550 naming an unknown user returns invalid and is billed, because that is a definitive answer. A 550 that reads as a policy block on our probe is not evidence about your address, so it returns unknown with the reason probe_blocked and is not billed.

Four 550s that mean four different things

Put these side by side. Gmail's 550 5.1.1 The email account that you tried to reach does not exist is the textbook case: the mailbox isn't there. Its sibling, 550 5.2.1 The email account that you tried to reach is disabled, is about a mailbox that exists and has been switched off, so for sending purposes it's dead too.

Microsoft 365 often phrases a missing user as 550 5.4.1 Recipient address rejected: Access denied. It reads like a policy block, but it's produced by a feature that rejects recipients who aren't in the organization's directory. Treat it as no such user.

Then there's Gmail's 550 5.7.26, which says the mail was blocked because the sender is unauthenticated. The recipient may be perfectly fine. Your SPF or DKIM failed, and the refusal would have been the same for any address at Gmail. Suppressing the recipient for that one throws away a good contact and leaves the real fault in place.

The neighbors: 551, 552, 553 and 554

Bounce logs lump every 5xx together, yet the neighboring codes have their own meanings in the standard. A 551 says the user isn't local and may suggest a forwarding address, and it's rare today. With a 552, the message exceeded a storage limit, usually because the mailbox is full or the message is too big.

A 553 says the mailbox name isn't allowed, which generally points to a malformed address and not a missing one. Then 554 means the transaction failed, and it has become the general-purpose code for policy refusals, including most blocklist rejections.

In practice, sort by the enhanced code and ignore which 55x came first. Anything in the 5.1.x family is about the address and belongs on your suppression list. Replies in 5.7.x are about permission or reputation and belong on your own to-do list. A 5.2.2 means the mailbox is full, and it's closer to a soft bounce in spirit even though it arrived as a permanent failure.

550 bounce code: common questions

Does 550 always mean the address is dead?

No. It means a permanent rejection. The enhanced code and text separate a missing mailbox from a policy refusal aimed at the sender.

What is a 5.1.1 code?

The enhanced status for a mailbox that does not exist. It is the most specific and trustworthy form of a 550.

Should I ever retry a 550?

No. It is permanent by definition, and repeat attempts to a known-dead address are a reputation signal you do not want.

See this on your own list

100 free checks a month, and the unknowns come back labeled.