Amazon SES: Throttling — Maximum sending rate exceeded (454 Throttling failure)
You are sending faster than your Amazon SES account's per-second limit, so SES throttles the requests.
Maximum sending rate exceeded454 Throttling failure: Maximum sending rate exceededThrottling Maximum sending rate exceeded SESDaily message quota exceeded SESThrottling: Maximum sending rate exceeded Meaning
SES enforces a maximum send rate (messages per second) and a 24-hour quota that depend on your account's sending limits. Slow your sender, add a rate limiter with retries and exponential backoff, or request a limit increase. New accounts start in the sandbox with very low limits.
Common causes
- Loop sending without delay
- Parallel workers exceeding the per-second rate
- Account still in sandbox with low limits
- 24-hour quota exhausted
- Burst after a queue backlog
⚡ Quick fix
- Add a rate limiter at or below
MaxSendRate - Retry with exponential backoff on
Throttling/ 454 - Request a sending-limit increase or move out of the sandbox
Detailed fix by platform
AWS CLI
aws sesv2 get-account --query '{Sandbox:ProductionAccessEnabled,Limits:SendQuota}'shows the max send rate and 24-hour quota
How to diagnose
- Rate — Send rate vs MaxSendRate?
- Quota — 24-hour usage?
- Mode — Sandbox or production?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- 421 4.7.0 Try again later (rate limited) SMTP: 421 4.7.0 Our system has detected an unusual rate of unsolicited mail originating from your IP address. Mail sent from your IP address has been temporarily rate limited
- 429 Too Many Requests (Laravel throttle) Laravel: Illuminate\Http\Exceptions\ThrottleRequestsException: Too Many Attempts. / 429 Too Many Requests
- 450 4.7.1 Greylisted, please try again later SMTP: 450 4.7.1 <user@example.com>: Recipient address rejected: Greylisted, see http://postgrey.schweikert.ch/help/example.com.html
Most viewed in Email / SMTP
Other ways to find it
Where this error sits
Origin: Network. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 4 Nov 2026