Back to Blog
Deliverability8 min readJune 20, 2026

Email Bounce Codes Explained: What They Mean

SMTP reply codes like 550, 421, and 450 tell you exactly why an email bounced. Here is what each one means and the right action for permanent versus temporary failures.

Every bounced email comes with a reason, and most of the time that reason is a three-digit number buried in a log or a mailbox provider's reply. Learn to read those numbers and you stop guessing about why mail fails. The codes tell you whether the address is dead, whether the receiving server is just busy, and whether you should retry or delete and move on.

This is a plain-English guide to SMTP reply codes: what 550, 421, and 450 actually mean, the line between permanent and temporary failures, and the right action for each.

The two families: permanent (5xx) and temporary (4xx)

SMTP groups its replies by the first digit. For bounces, only two ranges matter day to day.

  • 5xx is a permanent failure. The server is saying "do not bother trying again." The mailbox does not exist, the domain rejected you, or the message was refused on policy grounds. These show up as hard bounces.
  • 4xx is a temporary failure. The server is saying "not right now, try later." The mailbox might be full, the server might be rate-limiting you, or greylisting is in play. These are soft bounces, and a healthy sender usually retries them automatically for a day or two.

The 2xx range (like 250 OK) means accepted, and 3xx is part of the conversation mid-handshake. You will not see those as bounces.

Your mail server Receiving server checks address 5xx permanent 550 no such user delete the address 4xx temporary 421 / 450 try later retry, then re-check retry loop
A 5xx reply ends the road for that address; a 4xx reply just delays it.

The codes you will actually see

550 , mailbox unavailable or rejected

The most common hard bounce. Usually it means "no such user here," the address does not exist. It can also mean the server blocked you on reputation or a blocklist hit. Read the text that follows the number: "User unknown" and "recipient address rejected" point at the address; "blocked using spamhaus" or "policy" points at your sending reputation. If it is a dead address, remove it. If it is a block, the problem is your IP or domain, not the recipient.

551, 552, 553, 554 , the rest of the 5xx pack

  • 551 user not local. The recipient moved; sometimes the reply names a forwarding address.
  • 552 mailbox full or message too large. Technically over quota, but treat a persistent 552 as undeliverable.
  • 553 mailbox name not allowed, often a malformed or invalid address. Fix the syntax or drop it.
  • 554 transaction failed, the catch-all rejection. Frequently a spam or policy refusal with no detail. Check your content and authentication.

421 , service not available

Temporary. The receiving server is shutting down the connection, often because it is overloaded or because you are sending too fast. Microsoft and Google both throw 421 when they want you to slow your rate. Back off, spread the send over more time, and your queue will clear. If 421 is constant, your IP reputation may be flagged for throttling.

450 and 451 , mailbox busy or local error

Both temporary. 450 usually means the mailbox is unavailable right now or you have been greylisted, a deliberate "come back in a few minutes" trick that filters out spammers who never retry. A legitimate sender retries and gets through. 451 means the receiving server had a local processing error or is deferring you for policy reasons. Let your retry schedule handle these.

Permanent vs temporary, and what to do

CodeTypePlain meaningAction
250SuccessAcceptedNothing, it delivered
421TemporaryServer busy or throttling youSlow down, retry
450TemporaryMailbox busy or greylistedRetry on schedule
451TemporaryLocal server error or deferralRetry, then investigate
550PermanentMailbox does not exist or blockedRemove address or fix reputation
552PermanentOver quota or message too bigRemove if persistent
554PermanentRefused, usually spam or policyFix content and auth

The rule of thumb: a single 4xx is noise, repeated 4xx is a signal, and any 5xx for a bad address is final. Your mail server retries 4xx codes automatically, typically for 24 to 72 hours, then converts an unresolved soft bounce into a hard bounce.

Enhanced status codes give you the detail

Most modern servers also return a finer code in the format X.X.X, defined in RFC 3463. So a 550 often arrives as "550 5.1.1 user unknown." The first digit matches the SMTP class (5 = permanent), and the rest narrows it down. A few worth knowing:

  • 5.1.1 bad destination mailbox, the address does not exist.
  • 5.1.10 recipient address is a null or non-existent route, common from Microsoft 365 for unknown users.
  • 5.7.1 delivery not authorised, a policy or spam block.
  • 4.2.2 mailbox full, temporary.

Stop the bounce before it happens

Reading bounce codes is reactive. By the time you see a 550, the damage to your sender reputation is already counted. The cleaner play is to verify addresses before you send, so the dead ones never enter your campaign. That is the whole point of a free email verifier: it runs the SMTP conversation up to the point where the server would say 550, without delivering anything, and tells you which addresses are real. Pair that with steady email list hygiene and you keep bounce rates low enough to stay out of the throttling tier. For the wider picture, see how this fits into reducing your bounce rate and improving deliverability.

What is the difference between a hard bounce and a soft bounce?

A hard bounce is a permanent failure (a 5xx code) where the address is dead or the message was flatly refused, so it will never deliver. A soft bounce is a temporary failure (a 4xx code) like a full mailbox or a busy server, which usually clears on retry. Remove hard bounces from your list immediately; let soft bounces retry before acting.

Should I retry an email that got a 550?

No. A 550 is permanent, so retrying wastes sending capacity and signals to the receiving server that you are not honouring its rejections, which hurts your reputation. Remove the address. The only exception is when the 550 text clearly references a temporary block on your IP rather than the recipient, in which case fix the block first.

Why do I keep getting 421 errors from one provider?

A persistent 421 from a single provider, often Microsoft or Google, almost always means rate limiting. You are sending faster than they will accept from your IP, or your reputation with them is low enough that they throttle you on purpose. Slow your send rate, warm the IP gradually, and clean your list so a smaller share of your volume bounces.

550 errorbounce codesdeliverabilityhard bouncesmtp codessoft bounce
Email Bounce Codes Explained: 550, 421, 450 | Prime Verifier