Skip to content
Error code wiki · 511 codes · each one sourced

Find out why your email bounced

Paste the bounce message you got back. The lookup picks out the codes, works out which provider sent it and opens the entry that explains it: the cause, the fix and the source it rests on.

Runs in your browser. Nothing you paste leaves this page.

The lookup needs JavaScript. Every code in the wiki is also listed as a plain link.

The whole bounce works best: the lookup picks out the reply code, the enhanced code and any provider tag, and reads the wording for who sent it. A code on its own works too, such as 550 5.1.1, 421 or TSS04.

Browse by provider

The codes each provider documents for its own servers, explained against its own documentation.

The standard codes

What every mail server sends: the three-digit reply codes of RFC 5321 and the enhanced status codes of RFC 3463, grouped the way the RFCs group them.

Reply codes, by class

Enhanced status codes, by subject

The middle number says which part of delivery failed. RFC 3463 defines each subject and detail once for both classes, so 4.2.2 and 5.2.2 are the same problem, one temporary and one permanent.

X.0Other or undefined

No more specific subject applies.

X.1Addressing

The sender or recipient address: unknown, malformed or moved.

X.2Mailbox

The recipient mailbox exists but cannot take the message: full, disabled, too big.

X.3Mail system

The receiving system itself: full, not accepting mail, misconfigured, a size limit.

X.4Network and routing

Getting to the server: no answer, bad DNS, a routing loop, delivery time expired.

X.5Mail delivery protocol

The SMTP conversation: a command out of order, bad syntax, too many recipients.

X.6Message content or media

The message itself: a format or encoding the server will not accept.

X.7Security or policy

Refused by rule: authentication, reputation and policy blocks all sit here.

All 105 standard codes on one page

How to read a bounce

A bounce can carry three codes before its text. Each answers a different question, and the first digit answers the most important one.

421 4.7.0 [TSS04] Messages temporarily deferred due to user complaints
  1. The reply code, 421. Three digits from SMTP itself (RFC 5321), sent by every server. The first digit is the verdict: 2 accepted, 4 try again later, 5 refused for good.
  2. The enhanced status code, 4.7.0. Class, subject and detail (RFC 3463). The class repeats the verdict, the subject says which part of delivery failed (7 is security or policy), and the detail narrows it down. Optional, though the large providers all send one.
  3. The provider's own reference, [TSS04]. A tag the provider defines for itself, in its own format (Microsoft's look like S3140). Only its own documentation explains it, which is why the wiki files these codes by provider.

Temporary or permanent

A 4xx is not a bounce yet. Your server keeps the message and tries again, and RFC 5321 says to keep trying for at least four to five days. If every retry fails, the bounce arrives then, usually saying the delivery time expired (4.4.7). A 5xx bounces at once, and sending the same message again gets the same answer until the cause is fixed.

Where to find the codes

In the bounce your server sends back, look for the Diagnostic-Code: line, or the receiving server's name followed by said:. Outlook's reports put them under “Remote server returned”. The text after the codes is written for people and differs between servers, so look up the codes rather than the wording.

Beat · paid monitoring

A heartbeat for your email.

Beat runs every check on this site on a schedule: 41 checks, 33 blacklists and real inbox placement. The moment something breaks, it tells you what broke, why it matters, and the exact fix.

example.comWatching
  • SPFpass
  • DKIMpass
  • DMARCp=none
  • Blacklists0 of 33

Illustrative. Your domain, every few hours.

Also from us:Pulse: your own sending infrastructureConsulting: $65/hr, no retainer