Email bounces occur when the receiving server rejects a message. The bounce report usually contains an SMTP status code and a diagnostic string, which together indicate whether the failure is temporary or permanent. Understanding these codes allows you to maintain list hygiene, tune retry logic, and protect deliverability.
This article explains soft vs hard bounces, interprets SMTP 4xx and 5xx codes, and provides examples from Gmail and Microsoft 365.
The Core Difference
4xx = Soft bounce (temporary)
The server says: “Not now. Try later.”
These are transient issues such as rate limiting, DNS hiccups, temporary blocks, infrastructure delays, or mailbox over-quota conditions.
5xx = Hard bounce (permanent)
The server says: “This will not work as-is.”
These indicate invalid recipients, authentication failures, policy rejection, or domain/IP reputation problems.
MTAs retry 4xx for hours but stop immediately on 5xx unless infrastructure changes.
Soft Bounce (4xx) Examples
Gmail Soft Bounces
Common temporary Gmail conditions include: • 421 4.3.0 / 4.4.5 / 4.7.0 – Temporary system problem or server busy
• 450 4.2.1 / 4.7.1 – Relay limit exceeded, recipient policy deferral
• 452 4.2.2 – Mailbox full
• 450 4.2.0 / 451 4.3.0 – Mailbox or local resource temporarily unavailable
• 421 4.7.0 – Temporary anti-abuse or reputation-based deferral
• 421 4.7.0 – TLS required but temporarily unavailable
Gmail uses 421, 450, and 452 for rate limits, temporary blocks, and infrastructure instability.
Microsoft 365 Soft Bounces
Exchange Online uses 4xx codes for transient conditions: • 421 4.4.1 / 4.3.2 – Timeout or service unavailable
• 450 4.2.0 – Mailbox temporarily unavailable
• 452 4.2.2 / 4.3.1 – Mailbox full or system storage limits
• 451 4.7.0 / 4.7.500 – Temporary policy or server busy
• 450 4.4.312 / 451 4.4.0 – Temporary DNS lookup failure
These should be retried, with reduced concurrency if deferrals repeat.
Hard Bounce (5xx) Examples
Gmail Hard Bounces
Invalid recipients (5.1.x)
- 550 5.1.1 / 5.1.0 / 5.1.10 – Recipient does not exist
Mailbox disabled or over quota (5.2.x)
- 550 5.2.1 – Disabled mailbox
• 552 5.2.2 / 5.2.3 – Quota exceeded or message too large
Authentication / policy rejection (5.7.x)
- 550 5.7.26 – DMARC rejection
• 550 5.7.1 – Domain policy or content-based block
• 550 5.7.0 – Unauthorized mail relay
Content and formatting failures
- 554 5.5.0 / 553 5.3.0 – Format or address syntax issues
Microsoft 365 Hard Bounces
Invalid recipients (5.1.x)
- 550 5.1.1 / 5.1.10 – User not found
• 551 5.1.x – User not local
Mailbox disabled or restricted (5.2.x)
- 550 5.2.1 – Disabled mailbox
• 552 5.2.2 – Quota exceeded
Authentication and policy failures (5.7.x)
- 550 5.7.1 – Not permitted to send as this sender
• 5.7.57 – Client not authenticated
• 550 5.7.606 / 5.7.708 – IP banned or blocked
• 550 5.7.23 – SPF failure
Routing and content issues
- 553 5.5.4 – Invalid domain
• 554 5.4.14 – Routing loop detected
• 554 5.5.0 – Message refused by policy
Handling Guidelines

Soft Bounces (4xx)
- Retry with exponential backoff
• Reduce concurrency for throttled domains
• Watch domain-specific rate limits
• Maintain stable sending patterns
• Warm IPs and sending domains carefully
Hard Bounces (5xx)
Treat all hard bounces as permanent unless the provider explicitly states otherwise.
List hygiene:
• Immediately suppress 5.1.x invalid users
• Suppress 5.2.1 disabled mailboxes
• Optionally retry once for 5.2.2 / 5.2.3
• Do not retry 5.7.x until authentication or policy issues are fixed
Infrastructure:
• Fix SPF, DKIM, DMARC alignment
• Repair connectors or relay permissions
• Resolve domain/IP reputation issues
• Send small verification batches before resuming full traffic
Organizational-Level Governance
Hard bounce remediation should include:
• Global suppression rules across all systems
• Monitoring clusters of hard bounces for acquisition or list-quality issues
• Authentication and policy hardening for all sending sources
• Reviewing spam/content rejection patterns
• Enforcing verification and sunset policies to prevent decay of list quality
Summary
To sum it up, soft bounces indicate temporary conditions that resolve with proper retry logic and pacing. Hard bounces point to permanent issues such as invalid recipients or authentication and policy failures, and should feed directly into suppression and infrastructure corrections.
When SMTP codes are interpreted correctly, they expose where the failure sits: the recipient address, the remote server, your own authentication setup, or your sending behavior. This allows you to adjust retry windows, maintain list accuracy, and reinforce SPF, DKIM, and DMARC alignment.
Bounce data is not noise. It is a diagnostic layer that helps maintain a stable sender reputation and a predictable delivery path.