Guide · Amazon SES

Amazon SES bounce and complaint rate limits

Short answer

Amazon SES puts your account under review at a 5% bounce rate or a 0.1% complaint rate. It can pause sending at 10% bounces or 0.5% complaints. AWS recommends staying below 2% bounces and 0.1% complaints. Watch both on the Reputation metrics page, and remove every hard bounce and complaint the moment SES notifies you.

By BYOMailer · Updated 2026-11-06 · Facts checked against the official docs in November 2026

The official SES review and pause thresholds

MetricAWS recommendsUnder review atCan be paused at
Bounce rateBelow 2%5%10%
Complaint rateBelow 0.1%0.1%0.5%

Source: the AWS SES sending review FAQ, checked November 2026. One note: the reputation metrics help page says "below 5%" for best results, and the review FAQ says "below 2%". Aim for 2%. Under review means you can still send, you just have a deadline. A pause means SES stops accepting your mail.

Three details matter for how these are counted:

  • Only hard bounces to domains you have not verified count. A full mailbox, an out-of-office reply or a mail to the mailbox simulator does not.
  • The complaint rate only counts mail to providers that send complaint feedback to SES. AWS says it is likely representative of the rest.
  • Both rates use a representative volume of your sending, not a fixed time window. Your own math from CloudWatch Send and Bounce counts will not match. Trust the SES number.

SES can also skip the review and pause right away if the issue is serious, or if you were under review for the same thing before.

Step 1Read the reputation metrics page

In the SES console, choose Reputation metrics in the navigation pane. AWS says this page shows the same information the SES team sees when it checks an account. The top line is the account status:

Account statusWhat it means
HealthyNo issues are affecting your account.
Under reviewSES found a problem and gives you time to fix it. You can still send. If it is not fixed by the end of the review period, SES can pause sending.
Pending end of review decisionStill under review, and the issue needs a manual review by the SES team before any action.
Pending sending pauseThe review issue is not fixed. SES usually pauses here, but a person reviews your account first.
Sending pausedYou cannot send with SES until the pause is lifted. You can ask SES to review the decision.

Under it, the bounce rate and the complaint rate each have their own status:

Metric statusWhat it means
HealthyThe metric is at a normal level.
Almost healedThe metric put you under review, but it has stayed below the maximum since. If it stays there, it turns Healthy before the review ends.
Under reviewThe metric put you under review and is still above the maximum.
Pending sending pauseThe metric is still a problem. A person on the SES team reviews it before any action.
Sending pauseThis metric caused SES to pause your sending.

The page also shows notices that have nothing to do with bounces, for example spam trap hits, a domain blocklist, or a report from an anti-spam organization. Read them.

AWS always emails the address on your AWS account when it puts you under review. That is often not the inbox you send from, so it gets missed. Step 2 fixes that.

Step 2Set CloudWatch alarms at the review levels

SES publishes Reputation.BounceRate and Reputation.ComplaintRate to CloudWatch. From the reputation metrics page, choose View in CloudWatch on either rate, then the alarm bell icon. AWS suggests these alarm levels:

  • Bounce rate: Greater/Equal0.05 (5%).
  • Complaint rate: Greater/Equal0.001 (0.1%).
  • Missing data treatment: Treat missing data as ignore.
  • Action: In alarm, notify an SNS topic that emails or texts you.

If you never sent from the region, the SES metrics may not exist yet. Send one test to the mailbox simulator first.

Step 3Send bounces and complaints to Amazon SNS

SES requires a feedback method before you send: SNS notifications, email feedback forwarding, or event publishing. Email forwarding is fine for tiny volume. For a newsletter, use SNS so a program can act on each event.

  1. In Amazon SNS, create a topic of type Standard. SES does not support FIFO topics. The topic must be in the same region as SES.
  2. Edit the topic access policy so SES can publish to it:
SNS access policy
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": { "Service": "ses.amazonaws.com" },
    "Action": "sns:Publish",
    "Resource": "arn:aws:sns:<region>:<account-id>:<topic-name>",
    "Condition": {
      "StringEquals": {
        "AWS:SourceAccount": "<account-id>",
        "AWS:SourceArn": "arn:aws:ses:<region>:<account-id>:identity/<your-domain>"
      }
    }
  }]
}
  1. Subscribe at least one endpoint to the topic, such as an HTTPS endpoint or a queue that your app reads.
  2. In SES, open Configuration → Identities, choose your domain, open the Notifications tab and edit Feedback notifications.
  3. Select your topic for Bounce and Complaint, and save.
  4. Optional: turn off Email Feedback Forwarding so you do not get every event twice.

Each notification is JSON. The field that decides what you do is bounceType. Permanent is a hard bounce:

Bounce notification (trimmed)
"notificationType": "Bounce",
"bounce": {
  "bounceType": "Permanent",
  "bounceSubType": "General",
  "bouncedRecipients": [{ "emailAddress": "[email protected]" }]
}

Watch out: if SES cannot publish to the topic (deleted topic, broken permissions), it removes the topic from the identity and turns email forwarding back on. Standard SNS prices apply to these notifications.

Step 4Act on every notification

  • Permanent (hard) bounce: remove the address from your list now and never send to it again.
  • Transient (soft) bounce: a full mailbox, a message too large, rejected content. You may be able to send later, but do not keep retrying forever.
  • Complaint: remove the address now. AWS says not to send even a "you have been unsubscribed" message.

Some providers hide the recipient address in complaints. Store the SES message ID next to each contact when you send, so you can still find who complained.

Step 5Clean the list at the source

Removing bounces after the fact keeps you alive. Not getting them keeps you healthy. From the AWS list of what to do:

  • Do not buy, rent or share lists. Send only to people who asked for your mail.
  • Use double opt-in: a confirmation email they must click before they get anything else.
  • Do not reward signups before the address is confirmed, or people type fake ones.
  • Mailing an old list? Send to only a small part of it at a time, so a burst of bounces does not hit your rate all at once.
  • Stop sending to people who never open or click.
  • Send only the kind of mail people signed up for.
  • Make the unsubscribe link obvious.
  • Test with real addresses or the SES mailbox simulator, never with made-up ones.

If your account is under review or paused

  1. If you can, stop sending until you find the cause. Sending more of the same makes it worse.
  2. Read the email from AWS for the summary of the issue.
  3. Find the cause: a list import, one campaign, a signup form without confirmation.
  4. In the AWS Support Center, reply to the case AWS opened for you. Give the root cause, the changes you already made (not plans), and why they stop it happening again. For bounces, also say how you track bounces and how you check new addresses.

If AWS agrees your changes fix it, it only counts bounces or complaints after the change. If it does not accept the request, it tells you why, and in some cases you can try again.

How BYOMailer handles this step for you

This is the part people get tired of doing by hand. When you connect your SES account, BYOMailer sets it up in your AWS account and then runs it:

  • It creates an SNS topic and a configuration set per sending domain, so SES reports sends, deliveries, bounces, complaints and rejects back to BYOMailer.
  • A hard bounce or a complaint suppresses the contact automatically.
  • 3 soft bounces in a row suppress the contact too. A successful delivery resets the count.
  • A Reputation page shows your bounce and complaint rates for the last 24 hours, 7 days and 30 days against the 5% / 10% and 0.1% / 0.5% SES levels, and warns you when the 24-hour rate reaches a review level. These come from BYOMailer's own send log, so they will not match the SES number exactly, because SES uses its representative volume.
  • BYOMailer reads your SES account status every hour. If SES paused your sending, it blocks new sends and tells you why, so you do not queue a campaign that cannot go out.
  • Optional sunset: mark contacts as inactive when they have not clicked for a period you choose.

The setup starts at Getting started in the docs. Still in the sandbox? Read how to get production access. To compare costs, try the SES savings calculator or read about email marketing on Amazon SES.

Frequently asked questions

What bounce rate gets an Amazon SES account paused?

At a bounce rate of 5% or more, SES places your account under review. At 10% or more, SES can pause your ability to send. AWS recommends keeping it below 2%.

What complaint rate is too high on Amazon SES?

At 0.1% or more, SES places your account under review. At 0.5% or more, SES can pause sending. AWS recommends staying below 0.1%.

Do soft bounces count toward the SES bounce rate?

No. Only hard bounces to domains you have not verified count. Temporary failures such as a full mailbox, out-of-office replies and bounces caused by blocked IP addresses do not count.

Over what period does SES calculate the rates?

Not a fixed time window. SES uses a representative volume of your recent sending, which is different for each account. That is why you cannot recompute the exact rate from the CloudWatch Send and Bounce counts. Use the reputation metrics page or the Reputation.BounceRate and Reputation.ComplaintRate metrics.

Can AWS give me a list of the addresses that bounced?

No. AWS cannot give you a complete list of bounced or complained addresses. You have to capture them yourself from the SNS or email notifications, as they arrive.

Does an SES review affect my other AWS services?

You can still use other AWS services. AWS notes that a quota increase request for another service that sends outbound messages, such as Amazon SNS, can be denied until the SES review ends.

Keep exploring

Stop babysitting bounces

Connect your own Amazon SES account to BYOMailer. Bounces and complaints are processed for you.

Create your account

Free to try. Send your first 25,000 emails before you subscribe.