Skip to content

Glossary

What is a hard bounce?

Quick answer

A hard bounce is a message the receiving server refused permanently, with a 5xx reply meaning it will never be delivered as addressed. The usual causes are a mailbox that does not exist, a disabled account or a domain with no mail server. Remove the address from every future send the moment it hard-bounces, because retrying only adds to your bounce rate.

Definition

Hard bounce: A permanent delivery failure signaled by a 5xx reply, most often because the mailbox or domain does not exist. The address should be suppressed at once and never retried.

What causes a hard bounce

The most common cause is an unknown user: the mailbox was never created, was mistyped, or was deleted when the person left. The server answers 550 with the enhanced code 5.1.1.

Other causes are a disabled account (often 5.2.1), a domain that no longer exists, and a domain that publishes a null MX record to say it takes no mail at all.

Hard bounce vs policy rejection

Not every 5xx reply is about the address. A 550 or 554 with a 5.7.x enhanced code means the server refused your message because of authentication, reputation, a blocklist or content.

Those rejections are about you, not the recipient. Suppressing the address will not help; fixing authentication or reputation will. Read the enhanced code before you decide.

What to do after a hard bounce

Suppress the address in every tool that sends mail, not just the one that bounced, so a later CSV import does not add it back.

Then look at where it came from. A cluster of hard bounces from one form, one import or one lead source points at the real problem.

C: RCPT TO:<old.employee@example.com>
S: 550 5.1.1 <old.employee@example.com>: Recipient address rejected: User unknown in virtual mailbox table
A typical unknown-user rejection at the RCPT TO stage: basic code 550, enhanced code 5.1.1.

How RocketVerifier handles it

We return a mailbox the server explicitly rejects as undeliverable, with a sub_status such as mailbox_not_found, account_disabled, does_not_accept_mail or invalid_domain. A rejection about the sender, such as a policy, reputation or blocklist reply with a 5.7.x code, is reported as blocked (unknown) instead, and a bare 550 without a clear user-unknown meaning is treated as ambiguous. Connect SendGrid, Mailgun, Amazon SES or Postmark and every hard bounce on an address we marked deliverable within 30 days is refunded automatically and suppressed.

Go further

Sources

  1. RFC 5321: Simple Mail Transfer Protocol
  2. RFC 3463: Enhanced Mail System Status Codes

FAQ

Hard bounce: common questions

Can a hard-bounced address become valid again?

Sometimes. A mailbox can be recreated or a domain re-registered by someone new. Abandoned addresses are also how recycled spam traps are made, so treat a hard-bounced address as dead unless the owner signs up again.

Why did a hard bounce arrive hours after I sent?

Some servers accept every recipient during the SMTP session and only check mailboxes afterwards. When the mailbox turns out not to exist, they send a bounce message back later. Catch-all domains and security gateways behave this way.

Does one hard bounce hurt my sender reputation?

One bounce does not. Reputation responds to rates over time, so the problem is a send where a few percent of recipients bounce, or a steady trickle from a list nobody is cleaning.

Turn definitions into a cleaner list

Verify your first emails in minutes. Credits never expire, and unknown results are always free.

100 free credits · No card required · Credits never expire