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.
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 — 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 and re-resolve.
552 — Message Exceeds Size Limit
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— message refused due to lack of authentication.5.7.26— multiple authentication failures (Gmail's flag).
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
Often a policy block. Microsoft uses this 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 | Message refused for authentication | Fix SPF/DKIM/DMARC |
| 5.7.25 | Reverse DNS validation failed | Set up valid PTR — see 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.1mentioning "blocked" / "denylisted" / "policy" — your sender is being rejected, not the mailbox missing.421 4.7.0followed by reputation language — temporary throttle.550 5.7.606-610(Microsoft) — IP banned from Microsoft. Fix at SNDS, 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. 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:
- Group bounces by extended status code (
5.7.xvs5.1.xvs4.x). 5.1.xand5.2.x— list hygiene problem. Suppress, investigate signup quality.5.7.x— reputation or auth problem. Don't suppress; fix the underlying cause.4.x— usually auto-resolves. Investigate only if persistent.
FAQ
What's the difference between 4xx and 5xx codes? 4xx is temporary — retry. 5xx is permanent — 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 "554 5.7.26" mean specifically? Gmail's 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