What Is a Hard Bounce?
TL;DR
A hard bounce is a permanent delivery failure, returned by the receiving server as a 5yz SMTP reply, which means the same message to the same address will fail again if it is retried. The usual cause is an address that does not exist, so the address should be suppressed immediately rather than queued.
What causes a hard bounce?
Most often a recipient that does not exist: a typo, a person who left, or a mailbox that was deleted. RFC 5321 requires the receiving server to signal whether a failure is permanent or temporary, and a rejected recipient normally produces a 550 or 553 reply with text such as user unknown or no such recipient.
The other permanent cases are policy rather than existence: the receiver refusing your domain or IP outright, or refusing the message. Those carry 5yz codes too but mean something entirely different, so the reply text is worth reading before you decide the address was bad.
Why do hard bounces cost more than a lost message?
Because the receiving provider counts them. A stream of attempts to addresses that do not exist is the clearest available evidence that a list was bought or scraped rather than verified, and it is exactly the pattern spam-trap operators rely on, so the penalty lands on domain reputation rather than on the individual send.
That makes suppression non-negotiable and immediate. One hard bounce is data; the same address bouncing repeatedly across campaigns is a sender telling the provider that nobody is minding the list.
Frequently asked questions
Not to the same address. If the reply text points at a policy block rather than a missing mailbox, the thing to fix is the block, and a retry after fixing it is a different situation. Retrying an unknown-recipient failure adds nothing except another invalid attempt on your record.