Email Delivery

Diagnosing Email Bounces: Soft (4xx) vs Hard (5xx)

How to read SMTP bounce codes and take the right action — temporary vs permanent failures, common bounce reasons, and list hygiene.

Soft Bounces vs Hard Bounces

When an email can't be delivered, the receiving server returns an SMTP reply code explaining why. These bounce codes fall into two categories:

  • Soft bounce (4xx) — Temporary failure. The server might accept the message later.
  • Hard bounce (5xx) — Permanent failure. The message will never be delivered.

Common Soft Bounces (4xx)

421 — Service Not Available

The receiving server is temporarily refusing connections. Causes:

  • Server is overloaded
  • Rate limiting on incoming connections
  • Temporary greylisting

Action: Your mail server should retry automatically (typically for 48-72 hours).

450 — Mailbox Temporarily Unavailable

The mailbox exists but can't accept mail right now. Often caused by:

  • Greylisting (deliberate delay for first-time senders)
  • Mailbox locked by another process

Action: Retry. Greylisting resolves on the second attempt.

452 — Insufficient Storage

The recipient's mailbox is full.

Action: Retry for a few days. If persistent, the address may be abandoned.

Common Hard Bounces (5xx)

550 — Mailbox Not Found

The email address does not exist. The most common hard bounce.

Action: Remove the address from your list immediately. Continuing to send to invalid addresses damages your sender reputation.

551 — User Not Local

The server doesn't handle mail for this user.

Action: Remove from list or check if the address is correct.

552 — Message Size Exceeded

The message (including attachments) exceeds the server's size limit.

Action: Reduce attachment size. Host files externally and link to them.

553 — Mailbox Name Not Allowed

The email address format is invalid.

Action: Validate the address format and remove if invalid.

554 — Transaction Failed

A catch-all rejection. Often means:

  • Content flagged as spam
  • IP address is blacklisted
  • SPF/DKIM/DMARC authentication failure

Action: Check your content, IP reputation, and authentication records.

Enhanced Status Codes (RFC 3463)

Many servers include enhanced codes in the format X.Y.Z:

  • 5.1.1 — Bad destination mailbox address
  • 5.2.2 — Mailbox full
  • 5.7.1 — Delivery not authorized (policy rejection)
  • 4.7.0 — Temporary rate limit
  • 4.4.1 — Connection timeout

List Hygiene Best Practices

  • Remove hard bounces immediately
  • After 3 soft bounces across different sends, treat as hard bounce
  • Validate email addresses at sign-up (confirmation email)
  • Use a bounce processing webhook from your ESP (SendGrid, SES)
  • Monitor your bounce rate — above 2% signals reputation risk

Reading Bounce Messages

The bounce email (DSN — Delivery Status Notification) contains:

  • The SMTP reply code (e.g., 550)
  • Enhanced status code (e.g., 5.1.1)
  • Human-readable explanation from the receiving server
  • Original message headers for reference

Related Protocols

Related Glossary Terms

More in Email Delivery