Bounces

Hard bounce vs. soft bounce

A hard bounce is permanent: the address doesn't work, and it never will. A soft bounce is temporary: the message may still arrive. Treating them the same way either damages your sender reputation or throws away good contacts.

Updated October 9, 2026 · 4 min read

Hard bounce (5xx, permanent) vs. soft bounce (4xx, temporary)

The difference in one table

Hard bounceSoft bounce
What happenedThe address can’t receive mailDelivery failed for now
SMTP reply5xx, mostly 5.1.x and 5.2.14xx, such as 421, 450, 452
Retried by your server?NoYes, for hours or days
Typical causesMailbox or domain doesn’t exist, account disabled, invalid addressMailbox full, server down or overloaded, greylisting, rate limits
What to doRemove the address at onceKeep it; remove it after repeated soft bounces
Could verification catch it?Yes, before you sendNo, it’s temporary

There is a third kind that lists often lump in with the others: the block. The receiving server refused your message permanently (usually a 5.7.x code), but the address is fine. The problem is your authentication, reputation or content, so removing the address doesn’t help; fixing the cause does.

Hard bounce · 5xx

Fails at once, for good

  1. 1Message sent to jhon@example.com
  2. 5xxServer: 550 5.1.1 no such mailbox
  3. ✕Bounce arrives within seconds. No retries.

Remove the address. Sending again fails the same way.

Soft bounce · 4xx

Retried, then delivered or expired

  1. 1Message sent to jane@example.com
  2. 4xxServer: 452 4.2.2 mailbox full
  3. ↻Your server keeps it and retries for hours or days
  4. ✓Delivered once there is space, or a bounce when the retry period ends

Keep the address, but remove it after repeated soft bounces.

Common hard-bounce codes

ReplyMeaning
550 5.1.1The mailbox doesn’t exist
550 5.1.10Microsoft 365: recipient not found
553 5.1.2Gmail: the recipient domain doesn’t exist
553 5.1.3Gmail: the address isn’t valid
550 5.2.1Gmail: the account is inactive
554 … This user doesn't have a yahoo.com accountYahoo: unknown account

The exact wording differs by provider. The SMTP error codes reference lists them all, with what each provider’s message says.

Common soft-bounce causes

Your mail server keeps a soft-bounced message in its queue and tries again later, for a few days at most. If it never gets through, you get a bounce at the end (4.4.7 Message expired at Microsoft 365). That’s why one soft bounce is no reason to delete a contact, but the same address soft bouncing on every send is.

What your email service does with each

Email service providers keep a suppression list and stop sending to addresses on it:

If you send from your own application through an API such as Amazon SES, SendGrid or Mailgun, the service suppresses hard bounces for you. You build the rules for repeated soft bounces, and keep your own database in sync, from the bounce notifications it sends you.

How to prevent hard bounces

Hard bounces are the avoidable kind. They come from addresses that were wrong from the start or stopped working since.

  1. Verify addresses at sign-up. Check the address while the person is still on the form, so typos like jane@gmial.com get fixed by the one person who knows the right address. The email validation API does this in one request.
  2. Verify old lists before a campaign. Addresses decay as people change jobs and providers. Run lists that haven’t been mailed for a few months through the bulk email verifier or the email list cleaning service.
  3. Use double opt-in for newsletters, so only confirmed addresses get on the list.
  4. Remove hard bounces at once and never import them again from an old export.
  5. Watch your bounce rate. Below 2% is the common benchmark; the email bounce rate guide shows how to calculate it and what moves it.

What “bounce back” emails mean

When a message you sent bounces, you get an automatic email back from the mail system: “Mail Delivery Subsystem” at Gmail, “Microsoft Outlook” with the subject “Undeliverable:” at Microsoft, “MAILER-DAEMON” at many others. These bounce-back messages contain the reply code that tells you whether it was a hard or a soft bounce. Read how to decode them in Mail Delivery Subsystem, Delivery Status Notification (Failure) and MAILER-DAEMON.

Stop bounces before they happen

Most hard bounces come from addresses that don't exist. An email verification asks the receiving server about the mailbox without sending anything, so you can remove bad addresses before your next send.

Frequently asked questions

What is a hard bounce?

An email that was rejected permanently because the address can't receive mail: the mailbox doesn't exist, the domain doesn't exist, or the account is disabled. The receiving server answers with a 5xx code such as 550 5.1.1. Remove the address.

What is a soft bounce?

A temporary delivery failure: the mailbox is full, the receiving server is down or busy, or it is rate-limiting you. The server answers with a 4xx code, your mail server retries, and the message may still be delivered.

Should I remove soft bounces from my list?

Not after one. Remove an address when it soft bounces repeatedly across several sends, for example over a few weeks, or when it has no other sign of life such as opens or clicks. Many email services do this for you.

What causes an email to bounce back?

An address that doesn't exist (often a typo or a deleted account), a domain without mail servers, a full or disabled mailbox, a receiving server that is down, or a receiver that refuses your mail because of authentication, reputation or content.

Can a soft bounce become a hard bounce?

Yes. If a temporary problem lasts until the sending server's retry period ends, the message bounces for good. Email services also convert repeated soft bounces into a hard bounce: Mailchimp, for example, allows 7 soft bounces for contacts without subscriber activity and up to 15 for contacts with previous activity.

Email validation API

Validate emails in your app

emailvalidation.io checks syntax, MX records and the mailbox over SMTP, flags disposable, role and free addresses and returns a quality score, in one request.

/v1/info Email validation API Read the documentation

100 free validations every month. No credit card required.

GET https://api.emailvalidation.io/v1/info?email=support@emailvalidation.io

{
  "email": "support@emailvalidation.io",
  "user": "support",
  "tag": "",
  "domain": "emailvalidation.io",
  "format_valid": true,
  "mx_found": true,
  "smtp_check": true,
  "catch_all": null,
  "role": true,
  "disposable": false,
  "free": false,
  "score": 0.64,
  "state": "deliverable",
  "reason": "valid_mailbox",
  "did_you_mean": ""
}

Keep reading

Start using our email validation software today!

Get 100 validations per month for free