Reducing your bounce rate in Amazon SES

Written for engineering teams sending at volume on AWS.

Amazon SES
Their stated thresholdSES places an account under review when the bounce rate reaches 5% and may pause sending at 10%. The complaint rate threshold is 0.1% for review and 0.5% for a pause. These are published figures with automatic enforcement.
What happens if you cross itUnder review means AWS is watching and expects a remediation plan. A sending pause stops all outbound mail from the account, including transactional traffic, until you submit a case explaining the fix. This is the sharpest enforcement in the category.
Where the bounce data livesThe SES console's Reputation metrics page shows bounce and complaint rates against the thresholds. Per-message events require configuring an event destination to SNS, CloudWatch or Kinesis Firehose.
How bounces are classifiedSES separates Permanent, Transient and Undetermined bounces, with subtypes such as General, NoEmail and Suppressed. Only permanent bounces count toward the enforced rate, which matters when you are calculating your own exposure.

Bringing the rate down

Each step is an action inside Amazon SES, in the order worth taking them.

  1. Open Reputation metrics and read the real number

    The console shows your bounce rate against the 5% review threshold on a rolling basis. This is the number AWS acts on, and it is not the same as the rate in your own logs.

  2. Configure an event destination immediately

    Without one you have no per-message bounce data at all. Send events to SNS or Firehose so your application can suppress an address the moment it fails.

  3. Turn on the account-level suppression list

    SES can maintain its own suppression list, which stops you sending to an address that already bounced. It is not on by default and it is the single most useful setting here.

  4. Stop the source of permanent bounces

    Only permanent bounces count toward the threshold. Find where those addresses enter your system, which is almost always a signup path with no validation.

  5. Verify at signup, in the application

    There is no list to clean in SES. The check has to happen when the address is captured, which means an API call in your registration flow.

  6. Separate transactional from marketing with configuration sets

    Configuration sets let you track and isolate reputation per stream. A marketing send that triggers a review should not take your password reset mail down with it.

The mistake people make here

A bounce report mixes two causes that need opposite responses: addresses that do not exist, and receivers refusing mail they could have delivered. The first is fixed by checking the list. The second is a sending problem and no amount of cleaning will move it.

Questions people ask

What is the Amazon SES bounce rate limit?

5% puts the account under review and 10% can pause sending entirely. Complaint rates of 0.1% and 0.5% carry the same two consequences. These are published thresholds with automatic enforcement.

What happens when an SES account is paused?

All sending stops, including transactional mail. You submit a case describing the cause and the fix, and AWS decides when to restore it. Plan for this being measured in days.

Do transient bounces count toward the threshold?

No. Only permanent bounces count. That distinction matters when you estimate how close you are, because your own logs probably do not separate them the same way.

Check the list before the next send

100 free checks a month, no card, and the addresses nobody can resolve come back labeled rather than guessed at.