Skip to content
The Deliverability Ledger · 9 min read

SMTP Error Codes Explained: What 421, 550, 554 Really Mean

Every email rejection comes with an SMTP code. Most senders treat them as noise. Here's what each common code actually means, and how to fix it.

Author
Published
Updated
On this page
  1. How SMTP Status Codes Are Structured
  2. The Codes You'll Actually See
  3. 421: Service Not Available
  4. 450: Mailbox Temporarily Unavailable
  5. 451: Local Processing Error
  6. 452: Insufficient System Storage
  7. 550: Mailbox Unavailable / No Such User
  8. 551: User Not Local
  9. 552: Exceeded Storage Allocation
  10. 553: Mailbox Name Not Allowed
  11. 554: Transaction Failed (Catchall)
  12. 571: Delivery Not Authorized
  13. Common Enhanced Status Codes Worth Knowing
  14. The Sender-Reputation Bounces
  15. How to Read a Raw Bounce
  16. How to Triage Bounces
  17. FAQ
  18. Bottom Line
  19. Sources

When an email bounces, SMTP returns a 3-digit code and an optional extended status code (like 5.1.1). Most ESPs surface the code in their dashboard but rarely tell you what to do about it. This reference closes that gap for the codes you'll actually see.

How SMTP Status Codes Are Structured

A response like 550 5.1.1 The email account that you tried to reach does not exist has three layers:

  • Basic code (550): RFC 5321 reply codes. The first digit is the broadest category.
  • Enhanced status code (5.1.1): RFC 3463 finer detail.
  • Reason text: human-readable, varies by recipient server.

The first digit tells you the most:

  • 2xx: success.
  • 3xx: further input required (continuation).
  • 4xx: temporary failure (try again).
  • 5xx: permanent failure (don't retry).

The Codes You'll Actually See

421: Service Not Available

The receiving server is temporarily refusing your connection. Common causes:

  • Recipient server is overloaded.
  • Greylisting (a deliberate temporary deferral).
  • Your IP is reputation-rate-limited.
  • Maintenance window.

Fix: ESP should auto-retry. If you see persistent 421s from one recipient, your IP reputation with them is likely degraded. Check Postmaster Tools / SNDS.

450: Mailbox Temporarily Unavailable

The mailbox exists but can't accept mail right now. Often used for greylisting and temporary mailbox-full conditions.

Fix: Retry per ESP defaults. After 5 retries over 72 hours, suppress.

451: Local Processing Error

The recipient server hit a temporary internal error. Less commonly, it's used as a generic rate limit.

Fix: Auto-retry. If frequent from one recipient, reduce volume to that domain.

452: Insufficient System Storage

The recipient server is out of disk space (rare these days) or the recipient mailbox is full.

Fix: Auto-retry. Mailbox-full conditions often clear within days.

550: Mailbox Unavailable / No Such User

The most common hard bounce. The mailbox doesn't exist. Extended codes:

  • 5.1.1: bad destination mailbox.
  • 5.2.1: mailbox disabled.
  • 5.7.1: delivery not authorized (often means your sender was rejected, not the mailbox missing).

Fix: Suppress immediately, except when the extended code is 5.7.1, which is usually a policy/reputation issue, not a missing user.

551: User Not Local

The recipient server isn't authoritative for this domain. You're trying to deliver to the wrong server.

Fix: Almost always a misconfigured MX record or stale forwarding. Check the MX records with the MX lookup and re-resolve.

552: Exceeded Storage Allocation

RFC 5321 calls it exceeded storage allocation; in practice it usually means your message is too big. Most providers cap around 20-25 MB; some Gmail/Outlook business limits are higher.

Fix: Compress attachments or host them and link. Don't retry without modification.

553: Mailbox Name Not Allowed

The recipient address contains invalid characters or your "From" address is rejected.

Fix: Validate the address syntax. If the From address is rejected, check it has valid SPF and DMARC alignment.

554: Transaction Failed (Catchall)

The most common policy rejection. Extended codes are critical:

  • 5.7.0 / 5.7.1: message refused; reasons range from authentication failure to IP blocked.
  • 5.7.9: registered for SMTP AUTH ("authentication mechanism is too weak"), but Yahoo returns 554 5.7.9 for policy rejections.
  • 5.7.26: multiple authentication checks failed (Gmail sends it with a 550).

Fix: Read the full reason text. Authentication issues require fixing SPF/DKIM/DMARC. Blocks require fixing reputation. Suppression-list issues require addressing the sender, not the mailbox.

571: Delivery Not Authorized

Not a standard RFC 5321 code. Older Microsoft Exchange servers use it for a policy block when your IP or domain is rejected outright.

Fix: Check SNDS for IP reputation, check authentication, check blacklist status with the blacklist checker.

Common Enhanced Status Codes Worth Knowing

Code Meaning Likely fix
5.1.1 Bad destination mailbox Suppress address
5.1.2 Bad destination system Check MX records
5.1.8 Bad sender system Your From domain has DNS issues
5.2.2 Mailbox full Auto-retry, eventual suppress
5.4.1 No answer from host Recipient server is down
5.7.0 Other security/policy reason Read full bounce text
5.7.1 Delivery not authorized Reputation or auth issue
5.7.9 Authentication mechanism too weak (Yahoo: policy rejection) Read the text; at Yahoo, check SPF/DKIM/DMARC
5.7.25 Reverse DNS validation failed Set up valid PTR (see reverse DNS (PTR) lookup)
5.7.26 Multiple authentication checks failed DMARC alignment broken

The Sender-Reputation Bounces

A few codes that ESP dashboards often miscategorize as hard bounces but are really reputation problems:

  • 554 5.7.1 mentioning "blocked" / "denylisted" / "policy": your sender is being rejected, not the mailbox missing.
  • 421 4.7.0 followed by reputation language: a temporary throttle.
  • 550 5.7.606-649 (Microsoft): IP banned from Microsoft 365. Request removal at sender.office.com (Microsoft delist portal), do not suppress.

Suppressing these addresses loses you deliverable contacts. Fix the reputation issue and the same addresses will deliver again.

How to Read a Raw Bounce

A bounce message includes the SMTP response in its body, and the bounce analyzer reads every code in one you paste. Look for the section labelled "Diagnostic-Code" or the indented block under "Final-Recipient":

Final-Recipient: rfc822; user@example.com
Action: failed
Status: 5.7.26
Diagnostic-Code: smtp; 550-5.7.26 This mail has been blocked because the sender is...

The first line of the diagnostic code is the receiving server's exact response. That's what to act on, not your ESP's interpretation.

How to Triage Bounces

A simple weekly triage:

  1. Group bounces by extended status code (5.7.x vs 5.1.x vs 4.x).
  2. 5.1.x and 5.2.x: list hygiene problem. Suppress, investigate signup quality.
  3. 5.7.x: reputation or auth problem. Don't suppress; fix the underlying cause.
  4. 4.x: usually auto-resolves. Investigate only if persistent.

FAQ

What's the difference between 4xx and 5xx codes? 4xx is temporary, so retry. 5xx is permanent, so don't retry. Most ESPs handle this automatically.

Why do I get 550 errors for valid email addresses? Either the address was deactivated or, more often, the 550 is actually 550 5.7.x and indicates a policy block, not a missing mailbox. Check the extended code.

Should I suppress addresses that return 554? Only if the extended code clearly says the mailbox is invalid. 554 5.7.x codes are almost always reputation/auth issues. Suppressing them is a mistake.

What does "5.7.26" mean specifically? Gmail sends it as 550 5.7.26. It is the code for "multiple authentication checks failed". Almost always means DMARC alignment broke. Check SPF and DKIM signing, and align your From: domain.

Does retrying a 5xx code damage my reputation? Yes. Persistent retries against a 5xx are seen as bot-like behaviour. Configure your ESP to honor permanent failures.

Bottom Line

SMTP codes are diagnostic gold if you read them. The first digit tells you whether to retry; the extended code tells you what to actually fix. Suppressing every 5xx without reading the extended code is the most common, most expensive triage mistake in deliverability.

👉 Continue: Soft Bounce vs Hard Bounce · Why Did My Sender Reputation Drop? · How to Fix SPF, DKIM, and DMARC

Sources

Beat · paid monitoring

A heartbeat for your email.

Beat runs every check on this site on a schedule: 41 checks, 50 blacklists and real inbox placement. The moment something breaks, it tells you what broke, why it matters, and the exact fix.

example.comWatching
  • SPFpass
  • DKIMpass
  • DMARCp=none
  • Blacklists0 / 50

Illustrative. Your domain, every few hours.

Also from us:Pulse: your own sending infrastructureConsulting: $65/hr, no retainer