How to Detect an Amazon SES Sending Pause Automatically
To detect an Amazon SES sending pause, poll the SES v2 GetAccount operation and alert when EnforcementStatus isn't HEALTHY. SES doesn't send an EventBridge event when it pauses your whole account, and the SendingEnabled field doesn't change during an enforcement pause, so a check on that flag will report all clear while nothing goes out.
The notice AWS sends goes to the email address on the AWS account, which is often not the team that runs email. A pause found hours later means queued password resets, receipts and campaigns that failed silently. Here's what AWS documents (read 2 November 2026) and a monitoring setup built on it.
What AWS says to check
From the SES sending review FAQ, "How can I detect an account-level sending pause or reinstatement programmatically?":
- "SES does not emit an Amazon EventBridge event when it pauses or reinstates sending for your entire account. Automation that responds to account-level enforcement must read the account status; it cannot subscribe to an event for it."
- "To read the account status programmatically, call the
GetAccountoperation in the Amazon SES API v2 and check theEnforcementStatusfield. This is the same value shown as Account status in the SES console." - "Don't use the
SendingEnabledfield thatGetAccountreturns for this purpose. That field shows whether you turned account-level sending on or off yourself."
The three statuses
The GetAccount API reference defines them:
| EnforcementStatus | AWS's description | What your system should do |
|---|---|---|
HEALTHY |
"There are no reputation-related issues that currently impact your account." | Nothing |
PROBATION |
"We're placing your account under review while you work on correcting these issues." | Alert a person; consider holding risky streams |
SHUTDOWN |
"Your account's ability to send email is currently paused because of an issue with the email sent from your account." | Stop the send queue, alert, fail over transactional mail if you have a backup |
The status is per AWS Region. If you send from more than one Region, poll each.
A minimal monitor
- Poll on a schedule. A scheduled Lambda (EventBridge Scheduler) or a cron job runs
aws sesv2 get-account --region us-east-1and readsEnforcementStatus. The IAM role needsses:GetAccount. - Alert on change, not on every run. Store the last value and notify (SNS, Slack, PagerDuty) when it changes in either direction, so you also hear when you're reinstated.
- Gate the queue. Have your sending worker check the stored status before it pulls a batch. On
SHUTDOWN, stop pulling and keep messages queued instead of letting every send fail. - Log the review details.
GetAccountalso returnsDetails.ReviewDetailswith aCaseIdandStatus; record them so whoever answers the Support Center case has them.
Catch it before the review
The poll tells you a review or pause has happened. These warn you earlier:
- CloudWatch alarms on
Reputation.BounceRateandReputation.ComplaintRate. AWS reviews accounts at a 5% bounce rate and may pause at 10%; for complaints, review at 0.1% and a possible pause at 0.5%. Our post on SES bounce rate reviews has the full thresholds. - AWS Health Dashboard. AWS adds an "SES sending paused" event to the event log when it pauses an account, and you can alarm on new Health events. AWS notes the event "always has a Status of Closed", so read it as "this happened", not as the current state.
- Your own bounce and complaint feeds. SNS notifications per configuration set show which stream is going wrong.
Two kinds of review don't show up in these metrics at all: direct complaints and spam-trap reports. See SES direct complaints and SES spam-trap reviews.
Stop the most common cause
Most SES pauses follow a review that wasn't fixed in time, and bounce reviews usually start with an import of old or bought addresses. Check imports before they reach SES: the bounce rate calculator shows how far a list's expected bounces sit from the 5% line, and the verify page removes the addresses that would bounce.
Where SimpleVerifier fits
Verification removes invalid, disposable and dead-domain addresses before they count toward your SES bounce rate. It doesn't monitor your SES account; that's the poll above. The first 100 checks are free with a Google sign-in on the verify page. Pro is $39 a month with the first 100,000 checks a month at full speed, then slower, never cut off, and one-time packs of 10,000 checks for $15 never expire. See pricing.
Common questions
Does SES send an event when my account is paused?
Not at account level. AWS's sending review FAQ says SES doesn't emit an EventBridge event when it pauses or reinstates sending for the whole account. Tenant-level pauses do emit an EventBridge event. For the account, poll GetAccount or watch the AWS Health Dashboard, where SES adds an 'SES sending paused' event.
What's the difference between SendingEnabled and EnforcementStatus?
SendingEnabled reflects whether you turned account-level sending off yourself. EnforcementStatus is the reputation status AWS sets: HEALTHY, PROBATION (under review) or SHUTDOWN (paused). An enforcement pause changes EnforcementStatus and leaves SendingEnabled as it was.
How often should I poll GetAccount?
AWS doesn't publish a recommended interval. Every 5 to 15 minutes is usually enough to stop a queue before much mail backs up, and keeps you well clear of the API's throttling. Match it to how much mail you'd queue in that time.
What should my system do when the status changes to PROBATION?
Keep sending transactional mail but alert a person, and consider pausing the riskiest stream (imports, re-engagement, cold segments). AWS says you can still send while under review, but if you keep sending without changes you might make the issue worse.
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.