Verified Emails Still Bouncing? How to Find the Real Cause
Verified emails still bounce for a short list of reasons, and most of them are not verifier errors. Many bounces after verification are authentication, reputation or policy rejections that say nothing about whether the mailbox exists. Of the bounces that are about the mailbox, the common causes are the time since the check, catch-all addresses sent as if they were confirmed, late bounces from security gateways, and rows that changed between verification and sending. Read the SMTP code on every bounce before you blame the list or the tool.
This guide shows how to sort bounces by code in about ten minutes, what each group means, and how to prove a real verifier error when there is one.
Step 1: Export the bounces with the full SMTP reply
Your sending tool's bounce count is not enough. You need the reply line for each bounce. It looks like this:
550 5.1.1 The email account that you tried to reach does not exist.
There are three parts. The basic code (550) says permanent or temporary. The enhanced code (5.1.1) says what kind of problem. The text is the provider's own explanation. Enhanced codes are defined in RFC 3463: a first digit of 4 means a temporary failure and 5 means a permanent one. The middle digit gives the subject. X.1.x is about addressing, X.2.x about the mailbox, X.7.x about security or policy.
Most sequencers and ESPs show this line on the bounce record or in the raw bounce message. Export it with the recipient address and the send date. Our guide to hard and soft bounces covers where each platform keeps it.
Step 2: Sort bounces into four groups
Put every bounce into one of these groups. Only the first group can point to a verifier error.
| Group | Example codes and text | What it means |
|---|---|---|
| Mailbox does not exist | Gmail 550 5.1.1 "does not exist"; Microsoft 5.1.10 "Recipient not found"; Yahoo "This user doesn't have a yahoo.com account" | The address is dead. Suppress it |
| Mailbox exists but cannot take mail | Gmail 550 5.2.1 "inactive"; Gmail 552 5.2.2 "out of storage space and inactive" | Abandoned account. Suppress it |
| Sender problem: authentication, reputation, policy | Gmail 550 5.7.26 unauthenticated sender; 550 5.7.28 unusual rate of unsolicited mail; Microsoft 5.7.606-649 banned sending IP; 5.7.1 policy | The mailbox may be fine. Fix your setup |
| Temporary | Any 4xx, such as Gmail 421 4.7.28 or 450 4.2.1 | Retry later. Not a list problem |
The texts above come from Google's Gmail SMTP error reference, Microsoft's Exchange Online NDR reference and Yahoo's SMTP error codes page. Each code also has its own page in our SMTP code reference.
Watch for codes that change meaning by provider
The same enhanced code is not always the same problem. Gmail uses 552 5.2.2 for an inbox that is "out of storage space and inactive". Microsoft's reference lists 5.2.2 as "Submission quota exceeded", which means the sender went over a rate or recipient limit. One is a dead mailbox. The other is your sending account. Always read the text, and check which server produced the bounce.
Cause 1: The bounce was never about the mailbox
If a large share of your bounces sit in the sender-problem group, the list is not the cause. Verification cannot help with these. Typical patterns:
- Authentication failures. Gmail rejects unauthenticated mail with 550 5.7.26, and rejects mail that fails SPF or DKIM with 5.7.27 or 5.7.30. Google's sender guidelines require SPF or DKIM for all senders, plus DMARC and alignment for bulk senders.
- Reputation and rate. Gmail's 421 4.7.28 and 550 5.7.28 point to an unusual rate of mail or of unsolicited mail from your IP or domain.
- Banned infrastructure. Microsoft's 5.7.606-649 range means the sending IP was banned.
Some sequencers count all of these as "bounced". The campaign report then shows a high bounce rate on a verified list, and the list gets the blame. Fix authentication and volume first, then re-measure the bounce rate.
Cause 2: Time passed between the check and the send
A verification result describes a mailbox at one moment. People leave jobs. Companies shut down mailboxes. Consumer providers close inactive accounts. Gmail's own 5.2.1 and 5.2.2 texts describe inactive accounts.
Look at the gap between the verification date and the send date for each mailbox-level bounce. If most bounces come from rows verified months ago, the cause is age, not accuracy. Our guide on how often to re-verify gives cadences by list type. As a rule, re-check anything that has not been mailed successfully in the last three months, and re-check a list that sat in a sequencer for weeks.
Cause 3: You sent the risky segment as if it were confirmed
Verifiers that report honestly split results into valid, risky and invalid. Risky usually includes catch-all domains, which accept mail for any recipient at the SMTP stage. A verifier cannot confirm a mailbox there, so some of those addresses will bounce.
Check whether bounced addresses were in the risky file. A common pattern: the team uploaded "valid + risky" into one campaign, and the bounces came from the risky rows. That is not a false valid. It is a segment that needed its own plan. See whether to email catch-all addresses for a test-batch approach.
Cause 4: Late bounces from security gateways
Some companies put an email security gateway in front of their mail server. Many gateways accept every message first and check the recipient afterwards. When the recipient does not exist, the bounce comes later as a separate message. RFC 5321 requires a server that accepts a message and then cannot deliver it to send a failure notice back to the sender.
These bounces arrive hours or days after the send. Verification could not see them, because the gateway said yes to every address. Group your mailbox bounces by the recipient domain's MX host. If they cluster on Proofpoint, Mimecast or Barracuda hosts, read our guide to verifying emails behind security gateways.
Cause 5: Temporary failures counted as bounces
4xx replies are temporary. Yahoo's error code page describes 421 and 451 as temporary problems. Greylisting, rate limits and full inboxes all produce them. A good sending tool retries. Some campaign dashboards still count the first failure as a bounce. Separate 4xx from 5xx before you calculate a bounce rate. Google's guidelines also say to reduce volume when messages start bouncing or being deferred, until the error rate drops.
Cause 6: The address you sent is not the one you verified
This is more common than it sounds. Check for:
- Column mix-ups. The verified column was "Work email" but the campaign used "Email" from a different source.
- Merges. A CRM merge or dedupe kept the older address.
- Edits after verification. Someone fixed a typo by hand and introduced a new one.
- Re-imports. An old export was re-uploaded over the verified file.
- Hidden characters. Leading spaces or non-breaking spaces that the verifier trimmed but your sender did not.
Join your bounce export to your verification export on the exact address. Any bounced address that is missing from the verification file was never checked.
Cause 7: A real verifier false positive
After removing the groups above, you are left with mailbox-level bounces (5.1.1 and its equivalents) on addresses that were marked confirmed, verified a few days before sending, and sent exactly as verified. Those are candidate verifier errors.
To check:
- Re-verify the bounced addresses now.
- If the tool now says invalid, the mailbox likely closed between the check and the send.
- If it still says valid after a 5.1.1 bounce, that is a real false valid. Report it to the vendor with the full bounce line and timestamps.
False valids do happen. Some servers accept every recipient during the SMTP conversation and reject later, and some answer differently depending on who asks. Our article on SMTP verification false positives shows where they come from. If you want to measure a vendor's error rate properly rather than from one campaign, use our bench test protocol.
Worked example (illustrative numbers)
The numbers below are invented to show the triage. They are not from a real campaign.
A team sends 2,000 cold emails from a list verified 40 days earlier. The sequencer reports 64 bounces, 3.2%. Sorting by code:
| Group | Bounces | Share of sends |
|---|---|---|
| Sender problem: Gmail 5.7.26 from an inbox with broken DKIM | 22 | 1.1% |
| Temporary 4xx, later delivered on retry | 9 | 0.45% |
| Mailbox-level, rows from the risky (catch-all) file | 14 | 0.7% |
| Mailbox-level, late bounces from gateway domains | 6 | 0.3% |
| Mailbox-level, confirmed rows | 13 | 0.65% |
Re-verifying the 13 confirmed-row bounces today returns 10 as invalid and 3 as valid. The 10 closed during the 40-day gap. The 3 are candidate false valids worth reporting. The fix list is clear: repair DKIM, stop counting 4xx as bounces, send catch-alls as a separate test batch, and re-verify within days of sending. The "verifier problem" turned out to be 3 rows out of 64.
When to pause the campaign
Do the triage before you send more, not after the sequence finishes. Pause when either of these is true:
- Mailbox-level bounces keep coming from confirmed rows. Stop, re-verify the remaining rows, and resume with the fresh confirmed file.
- Sender-problem codes appear at all. A 5.7.26 or 5.7.28 from Gmail, or a banned-IP code from Microsoft, will repeat on every message until you fix the cause. More volume makes it worse.
Temporary 4xx codes do not need a pause on their own. Lower the volume until they clear, as Google's guidelines suggest. If the bounce rate already crossed your platform's line, our first 24 hours after a high bounce rate plan covers what to do next.
A pre-send routine that prevents most of this
- Verify within a few days of the send, not weeks.
- Send only the confirmed file to the main campaign.
- Put risky rows in their own small campaign with a volume cap.
- Check SPF, DKIM and DMARC on every sending domain before launch.
- Keep the verification export and match it to bounces after the send.
- Add every hard bounce to your suppression list, whatever the cause.
For step 1, SimpleVerifier's pay-as-you-go packs cost $9 for 2,500 or $19 for 10,000 verifications, and credits never expire, so re-checking before each send does not waste a subscription. Pro is $29.99 a month for unlimited email verification and API access. Details are on the pricing page.
The short version
Bounces after verification are usually a sending problem, a timing problem or a segment problem. Export the SMTP reply for every bounce. Separate mailbox-level codes from authentication, reputation and temporary codes. Check the gap since verification, whether the address came from the risky file, whether the domain sits behind a gateway, and whether the sent address matches the verified one. Whatever is left is a real verifier error, and you can prove it by re-checking the address and sending the vendor the bounce line.
Common questions
Why do verified emails bounce?
Most often because the bounce is not about the mailbox at all: it is an authentication, reputation or policy rejection. Of the bounces that are about the mailbox, the usual causes are the time gap since verification, catch-all addresses that were sent as if confirmed, late bounces from security gateways, and addresses that changed between the check and the send. Real verifier false positives are one cause among several.
What bounce rate is normal after email verification?
There is no universal number, and platforms set their own limits. What you can control is the mailbox-not-found share. If most of your bounces carry codes like 5.1.1 and the addresses were verified as confirmed within the last few days, look closely at the verifier. If most are policy or authentication codes, fix your sending setup first.
Do catch-all addresses bounce?
They can. A catch-all domain accepts mail for any address at the SMTP stage, so a verifier cannot confirm the mailbox. Some of those messages are delivered, some go to a shared inbox, and some bounce later. That is why honest verifiers return them as risky rather than valid.
How long is an email verification result good for?
It describes the mailbox at the moment of the check. Re-verify before sending anything that has not been mailed successfully in the last few months, and re-check a list that sat in a sequencer for weeks before a new campaign.
Can a soft bounce be caused by a bad list?
Rarely. Soft bounces, the 4xx codes, are temporary: rate limits, greylisting, full inboxes or server trouble. Yahoo, for example, describes 421 and 451 errors as temporary problems. Some sending tools still count them as bounces in campaign stats, which makes a list look worse than it is.
Verify unlimited addresses for $29.99/month
Real SMTP mailbox checks. No credits, no per-email fees.
Get Started