Complete Guide to SMTP Bounce Codes and Error Messages | Emails Wipes

Decode every SMTP bounce code and error message. Learn the difference between 4xx and 5xx errors, how to fix them, and when to remove addresses from your list.

Complete Guide to SMTP Bounce Codes and Error Messages

MS
Max Sterling
January 02, 2026 · 12 min read
Published: February 10, 2026 · 15 min read · Email Technical

You sent an email campaign to 10,000 addresses. 300 bounced. Your email provider shows cryptic error codes like 550 5.1.1, 421 4.7.0, or 554 5.7.1.

What do these codes mean? Which ones are permanent? Which can you retry? And most importantly - how do you fix them?

This complete guide decodes every SMTP bounce code, explains what causes each error, and shows you exactly how to fix it.

What Are SMTP Bounce Codes?

SMTP (Simple Mail Transfer Protocol) is the protocol that delivers email across the internet. When an email can't be delivered, the receiving server sends back a bounce message with an error code.

Bounce Code Format:
SMTP codes follow the format XXX Y.Y.Y:

First digit (X): Category (4=temporary, 5=permanent)
Three-digit code (XXX): Specific error type
Extended code (Y.Y.Y): Detailed reason

Example: 550 5.1.1 User unknown

  • 550: Permanent failure
  • 5.1.1: Bad destination mailbox address
  • "User unknown": Human-readable explanation

Hard Bounces vs Soft Bounces

Hard Bounces (5xx Errors)

Definition: Permanent delivery failures. The email will never be delivered to this address. Learn more about the critical differences between hard and soft bounces.

Common causes:

  • Email address doesn't exist
  • Domain doesn't exist
  • Recipient server permanently rejects your domain
⚠️ Action Required: Remove hard bounces from your list immediately. Never retry. Continuing to send to hard bounces damages your sender reputation and can get you blacklisted. Monitor your email bounce rate to catch issues early.

Soft Bounces (4xx Errors)

Definition: Temporary delivery failures. The email might be delivered later.

Common causes:

  • Recipient's mailbox is full
  • Receiving server is temporarily down
  • Message is too large
  • Rate limiting / greylisting
Retry Policy: Retry soft bounces 3-5 times over 72 hours. If still bouncing after 5 attempts, treat as a hard bounce and remove.

The Most Common SMTP Error Codes

421 - Service Not Available

421 4.7.0 [TSxxxxxxxx] Messages from xxx.xxx.xxx.xxx temporarily deferred due to user complaints

Type: Soft bounce (temporary)

What it means: The receiving server is temporarily rejecting your messages, usually due to:

  • Too many spam complaints from your IP/domain
  • Rate limiting (sending too fast)
  • Greylisting (anti-spam technique)

How to fix:

  1. Slow down sending - Add delays between messages
  2. Check sender reputation - Use Sender Score
  3. Verify email authentication - Ensure your SPF, DKIM, and DMARC are properly configured
  4. Reduce complaints - Make unsubscribe easy, send relevant content
  5. Retry after 1-2 hours - Temporary blocks usually lift

450 - Mailbox Unavailable

450 4.2.1 The user you are trying to contact is receiving mail too quickly

Type: Soft bounce (temporary)

What it means: Recipient's mailbox is temporarily unavailable:

  • Mailbox full
  • Recipient receiving too many emails
  • Server maintenance

How to fix:

  1. Retry after 4-6 hours
  2. If persists after 3-5 retries - Remove from list
  3. Check message size - Large attachments can cause this

451 - Local Error

451 4.3.0 Temporary server error. Please try again later

Type: Soft bounce (temporary)

What it means: The receiving server encountered an error processing your email:

  • Server overload
  • DNS issues
  • Spam filter overload

How to fix:

  1. Retry after 30-60 minutes
  2. Check your DNS records - Ensure SPF/DKIM are correct
  3. Verify sending IP isn't blacklisted - Use MXToolbox

550 - Mailbox Not Found

550 5.1.1 The email account that you tried to reach does not exist

Type: Hard bounce (permanent)

What it means: The email address doesn't exist. This is the most common bounce code.

Causes:

  • Typo in email address
  • Account was deleted
  • Never existed in the first place

How to fix:

  1. Remove immediately - Never retry
  2. Validate new emails before adding - Use bulk email validation to prevent these errors
  3. Check for typos - Common: gmial.com instead of gmail.com

Prevent 550 Errors Before They Happen

Emails Wipes validates mailbox existence in real-time. Upload your list and remove invalid addresses in seconds.

Try Free Now

551 - User Not Local

551 5.1.6 Recipient not local to this server

Type: Hard bounce (permanent)

What it means: The receiving server doesn't handle email for this domain. This usually indicates:

  • Domain's MX records point to the wrong server
  • Domain was migrated to a new email provider
  • Configuration error

How to fix:

  1. Remove from list - Can't deliver to misconfigured domains
  2. Check MX records - Use dig MX example.com
  3. Contact recipient via other channel - Ask for updated email

552 - Mailbox Full

552 5.2.2 The email account that you tried to reach is over quota

Type: Soft bounce (can become hard)

What it means: The recipient's mailbox has exceeded its storage limit.

How to fix:

  1. Retry after 24-48 hours - User might clear space
  2. After 3-5 retries over a week - Remove from list
  3. Reason: Full mailboxes are usually abandoned accounts

553 - Invalid Mailbox

553 5.1.2 We weren't able to find the recipient domain

Type: Hard bounce (permanent)

What it means: The domain name in the email address doesn't exist or has no mail server.

Examples:

How to fix:

  1. Remove immediately
  2. Check for typos - Common mistakes: .co vs .com
  3. Validate domains before sending - Use Emails Wipes

554 - Transaction Failed

554 5.7.1 Service unavailable; Client host [xxx.xxx.xxx.xxx] blocked using Spamhaus

Type: Hard bounce (permanent, but fixable)

What it means: Your sending IP/domain is blacklisted or your email failed spam checks.

Common causes:

  • IP address is on a blacklist (Spamhaus, Barracuda, etc.)
  • SPF/DKIM/DMARC authentication failed
  • Content triggered spam filters

How to fix:

  1. Check blacklists - Use MXToolbox
  2. Request delisting - Follow blacklist provider's process
  3. Fix authentication - Set up SPF, DKIM, DMARC correctly (see our complete deliverability guide)
  4. Improve content - Avoid spam trigger words, ALL CAPS, excessive links
  5. Switch IP if needed - If reputation is too damaged

Provider-Specific Bounce Codes

Gmail Bounce Codes

550 5.7.1 - Suspected Spam

550 5.7.1 [xxx.xxx.xxx.xxx] Our system has detected that this message is likely suspicious

What it means: Gmail's AI spam filter flagged your email.

How to fix:

  • Set up Gmail Postmaster Tools to monitor reputation
  • Reduce link density (max 2-3 links per email)
  • Use a custom domain (not @gmail.com)
  • Improve engagement (opens, clicks, replies)

421 4.7.0 - Temporary Rate Limit

421 4.7.0 This message does not pass authentication checks (SPF and DKIM both do not pass)

What it means: Your authentication failed or you're sending too fast.

How to fix:

  • Set up SPF and DKIM correctly
  • Slow down sending rate (Gmail recommends max 2,000/hour for new senders)
  • Warm up your domain gradually

Yahoo/AOL Bounce Codes

554 5.7.9 - DMARC Policy

554 5.7.9 Message not accepted for policy reasons

What it means: Yahoo enforces strict DMARC policies.

How to fix:

  • Set up DMARC record with p=quarantine or p=reject
  • Ensure DKIM alignment (signing domain = From domain)
  • Don't send from @yahoo.com or @aol.com addresses

Microsoft/Outlook Bounce Codes

550 5.7.606 - Access Denied

550 5.7.606 Access denied, banned sending IP [xxx.xxx.xxx.xxx]

What it means: Your IP is on Microsoft's internal blocklist.

How to fix:

  • Use Microsoft's Smart Network Data Services to check reputation
  • Request delisting via Microsoft's support form
  • Reduce spam complaints and bounce rates

Quick Reference Table: All SMTP Codes

Code Type Meaning Action
421 Soft Service not available Retry in 1-2 hours
450 Soft Mailbox unavailable Retry in 4-6 hours
451 Soft Local error Retry in 30-60 min
452 Soft Insufficient storage Retry in 24h
550 Hard Mailbox not found Remove immediately
551 Hard User not local Remove immediately
552 Soft Mailbox full Retry 3x, then remove
553 Hard Invalid mailbox Remove immediately
554 Hard Transaction failed Check blacklists, fix auth

Extended Status Codes (Y.Y.Y)

The three-part extended code provides more detail:

First Digit: Class

  • 2.X.X: Success
  • 4.X.X: Persistent transient failure (soft bounce)
  • 5.X.X: Permanent failure (hard bounce)

Second Digit: Subject

  • X.0.X: Undefined / Other
  • X.1.X: Addressing (mailbox, domain issues)
  • X.2.X: Mailbox status (full, disabled)
  • X.3.X: Mail system (server errors)
  • X.4.X: Network routing
  • X.5.X: Protocol status
  • X.6.X: Message content
  • X.7.X: Security / Policy

Third Digit: Detail

  • X.X.0: Other / undefined
  • X.1.1: Bad destination mailbox address
  • X.1.2: Bad destination system address
  • X.2.1: Mailbox disabled
  • X.2.2: Mailbox full
  • X.7.1: Delivery not authorized

Best Practices for Handling Bounces

  1. Automate bounce processing - Don't manually review every bounce
  2. Remove hard bounces immediately - Never retry 5xx errors
  3. Retry soft bounces intelligently - Max 3-5 attempts over 72 hours
  4. Track bounce rates per campaign - Aim for <2%
  5. Validate emails before adding to list - Prevent bounces proactively
  6. Monitor sender reputation - Use Google Postmaster, Sender Score
  7. Set up proper authentication - SPF, DKIM, DMARC are mandatory
💡 Pro Tip: Set up a bounce webhook with your email provider. Automatically remove hard bounces and retry soft bounces without manual intervention.

How to Prevent Bounces

1. Validate Emails Before Sending

The best way to handle bounces is to prevent them. Use an email validation service like Emails Wipes to check:

  • Syntax errors
  • Domain validity
  • Mailbox existence
  • Spam traps
  • Disposable email addresses

2. Use Double Opt-In

Require users to confirm their email address by clicking a link. This ensures:

  • Email address is valid
  • User has access to the mailbox
  • User actually wants your emails

3. Clean Your List Regularly

Run your list through validation every 3-6 months to remove:

  • Old addresses that no longer exist
  • Inactive subscribers (no opens in 6+ months)
  • Role-based emails (info@, admin@, noreply@)

4. Monitor Engagement

Stop sending to people who never open. After 6 months of no engagement:

  • Send re-engagement campaign
  • If still no response, remove from list

What to Do Right Now

  1. Export your last campaign's bounces - Categorize by code (4xx vs 5xx)
  2. Remove all 5xx hard bounces - Never send to them again
  3. Set up retry logic for 4xx soft bounces - 3 attempts over 72 hours
  4. Validate your current list - Run through Emails Wipes
  5. Check authentication - Verify SPF, DKIM, DMARC with MXToolbox
  6. Monitor reputation - Set up Google Postmaster Tools

Stop Bounces Before They Happen

Emails Wipes validates your entire list in seconds. Remove invalid addresses, spam traps, and risky emails before you send.

Clean Your List Now

Conclusion

SMTP bounce codes aren't random numbers - they're precise signals telling you exactly what went wrong and how to fix it.

Remember the golden rules:

  • 4xx = Soft Bounce - Retry up to 5 times over 72 hours
  • 5xx = Hard Bounce - Remove immediately, never retry
  • Prevention > Reaction - Validate emails before sending

By understanding and properly handling bounce codes, you'll protect your sender reputation, improve deliverability, and get more emails into the inbox.