Skip Navigation
Understanding Hard vs Soft Bounce Codes
Deliverability

Understanding Hard vs Soft Bounce Codes

A 550 user unknown is not the same as a 421 try again later. Treating every bounce as a retry is how you annoy both the recipient domain and your own queue.

by Mailcentr WizardAug 9, 20261 min read

SMTP status codes are the receiving server talking. Your ESP may label them “soft” and “hard”, but you should still read the enhanced status and the text. Misclassification keeps bad addresses on the list or drops good ones.

Hard bounces

Permanent failures: mailbox does not exist, domain does not exist, relay denied for policy that will not change. Remove the address. Sending again is how you look like a dictionary attack. Typical 5xx codes with “user unknown” or “mailbox unavailable” belong here — unless the text says the mailbox is full, which is often temporary.

Soft bounces

Temporary problems: greylisting, rate limits, full mailbox, outage. Retry with backoff. If the same address soft-bounces across many days, treat it as abandoned and suppress. A 4xx from a provider during warmup is often “slow down”, not “delete this user”.

Blocks that look like bounces

Some 550s are policy: spam content, failed authentication, or an IP on a blocklist. Those are not bad recipients; they are a reputation problem. Fix SPF/DKIM/DMARC, cut the campaign, and check listings before you purge the list.