Skip to main content

Bounce Categories

Webhook 

These are the bounce categories which are sent in the webhook response when an email gets bounced.

Where the category appears​

When a message bounces we send a BOUNCED event to your webhook endpoint. Three fields on that payload describe the bounce:

FieldMeaning
bounceCategoryThe numeric category from the tables below.
bounceDescriptionThe raw diagnostic text the receiving server returned (dsn_diag).
bounceStatusThe DSN status code the receiving server returned (dsn_status).

The event's subType carries HARD_BOUNCED or SOFT_BOUNCED, which matches the grouping below. Use bounceCategory when you need the specific reason, and subType when all you need is whether to keep sending.

Hard bounces — stop sending to this address​

Delivery to this address should not be attempted again. Add it to your own suppression list.

CodeCategoryMeaning
10Bad email addressDelivery attempts to this address should no longer be attempted. Usually means the mailbox does not exist.
90UnsubscribeThe recipient requested removal from the mailing list. Not a delivery failure, but treat it as final.

Soft bounces — temporary, safe to retry​

The address may well be valid. Retry is reasonable, though repeated soft bounces to the same address or domain are worth acting on.

Temporary failures​

CodeCategoryMeaning
20GeneralA possibly temporary delivery failure. The address may or may not be valid — often an ambiguous response such as a mailbox being "inactive" or "unavailable".
21DNS failureA DNS lookup failed, either at TinyEmail or at a subsequent relay server.
22Mailbox fullThe recipient's mailbox or quota is full.
23Message too largeThe destination server rejected the message because of its size.
24Missing MX recordThe destination domain has no MX record.
29Unable to connectWe could not connect to the remote server. Many of these for one domain usually means the domain is not working, or is blocking your mail server.
40General bouncePositively identified as a bounce, but no more specific category could be determined.
70Transient bounceA temporary delay in message transmission.

Mail blocks​

The receiving server refused the message. These are worth investigating rather than simply retrying — several point at a sender reputation or authentication problem.

CodeCategoryMeaning
50GeneralRejected for a reason no more specific "mail block" category covers.
51Known spammerThe remote server considers the sender a spammer. Not specific to this message — it concerns the sending server itself, often because of a public or private block list.
52Spam detectedThe remote server classified this message's content as spam.
53Attachment detectedRejected because of one or more attachments.
54Relay deniedThe remote server refused to act as a relay for the message.
55SPF/DKIM/DMARCRefused on authentication policy. Resolving the specific complaint in bounceDescription usually improves deliverability.
59Unable to connectWe could not connect to the remote server, much like code 29.

Not bounces​

These codes appear in the same field but do not indicate a delivery failure. Do not suppress on them.

CodeCategoryMeaning
0Non-bounceThe bounce processor received a message it could not classify as a bounce or as any other non-bounce code.
60Auto-replyGenerated by an auto-responder, such as a vacation reply.

Request​

Loading...