Amazon SES Account Under Review for Bounces: How to Recover
Amazon SES places an account under review when its bounce rate reaches 5% and may pause sending if it reaches 10%, according to AWS's SES documentation. To recover, stop mailing the list that caused the bounces, make sure every hard bounce is suppressed, verify the remaining addresses before sending again, and tell AWS exactly what you changed.
The thresholds AWS publishes
| Metric | AWS recommends staying below | Under review at | Sending may be paused at |
|---|---|---|---|
| Bounce rate | 2% | 5% | 10% |
| Complaint rate | 0.1% | 0.1% | 0.5% |
These are from the Amazon SES Developer Guide's enforcement FAQ. Check the current page, as AWS can change them.
The rate SES uses is based on a representative volume of your recent sending, not one day. That is why a single bad import can keep the rate high for a while even after you stop.
What to do the day the review email arrives
- Find the source. Look at the sends just before the rate jumped. A newly imported list, an old segment, or a broken signup form is usually the cause.
- Stop sending to that source. Pause the campaign or the integration that is feeding it.
- Check suppression. Confirm the SES account-level suppression list is enabled for bounces and complaints, and that your application also stops mailing addresses that hard bounced.
- Read the bounces. SES bounce notifications include the diagnostic code. Paste examples into the bounce message analyzer to confirm they are "mailbox does not exist" problems and not something else.
Fix the list before you send again
Most SES bounce problems come from addresses that never existed or no longer exist.
| Source | Fix |
|---|---|
| Imported or old list | Verify every address before the next send; remove invalid |
| Signup form | Add real-time verification and typo correction at the form |
| Fake signups or bots | Add a honeypot or bot protection; see stopping fake signups |
| Mistyped addresses | Catch gmial.com-style typos with the email typo corrector |
| CRM data synced into SES | Verify on sync, and mark bounced contacts in the CRM |
For a list that bounced heavily, verify all of it, send only the valid segment, and leave catch-all and unknown addresses out until the rate is back to normal.
How to reply to AWS
AWS reviews want to see that you understand the cause and changed something. A useful reply covers:
- What caused the bounces, in one or two sentences. For example, an old list imported without verification.
- What you stopped. The campaign or integration is paused.
- What you changed. Suppression enabled, list verified, signup form now validates addresses.
- How you will prevent it. Verification before every import, and monitoring of bounce rate.
Keep it specific. "We fixed our list" is weaker than "we verified the 40,000-address segment, removed 3,100 invalid addresses and enabled account-level suppression for bounces."
Bring the rate down safely
Because the rate is calculated over recent sends, the way down is clean volume:
- Restart with your most engaged, recently verified recipients.
- Keep transactional mail flowing if it is healthy; it is usually your cleanest traffic.
- Add other segments only after they have been verified.
- Watch the reputation metrics in the SES console every day until the rate is well under the review line.
Prevent the next review
- Verify before import. Any list that did not come from your own confirmed signup should be verified first.
- Validate at the form. Real-time checks stop bad addresses at the source; see real-time email verification on signup forms.
- Re-verify old segments. Contacts you have not mailed in months should be checked before you mail them again; see mailing an old email list.
- Alert early. Set a CloudWatch alarm on the bounce metric well below 5%, so you hear about it before AWS does.
Our post on bounce rate limits by platform compares SES with other providers.
Separate traffic types
If you send both transactional and marketing mail from one SES account, a bad marketing list can put your password resets and receipts at risk. Consider separate configuration sets, and for larger senders separate accounts or sending identities, so problems in one stream are easier to see and contain. Watching metrics per stream also makes it obvious which one caused a spike.
Verify the list before you resume
Upload the list that caused the problem on the verify page and send only the valid addresses. You get 100 free email checks when you sign in with Google, no card. For an application sending through SES, the API can check addresses before they are added to your audience.
Common questions
What bounce rate causes an Amazon SES review?
AWS's SES documentation says an account goes under review if its bounce rate reaches 5%, and sending may be paused at 10%. For complaints, the figures are 0.1% for review and 0.5% for a possible pause.
How do I lower my Amazon SES bounce rate?
Stop sending to unverified or old lists, make sure hard bounces are suppressed automatically, verify addresses before importing them, and add confirmation to signup forms. The rate comes down as clean sends replace the bad ones in the calculation.
Does the SES account-level suppression list stop all bounces?
It stops repeat sends to addresses that already hard bounced from your account. It cannot prevent the first bounce from a new bad address; only verifying before sending does that.
Can I keep sending while my SES account is under review?
During a review AWS normally lets you keep sending while you fix the problem, but if the rate keeps rising sending can be paused. Use the time to clean the list rather than pushing more volume.
Check your list before you send
Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.