# 450 4.7.1 Requested action not taken: rate limit exceeded

- **ID:** `communication/smtp-rate-limit-exceeded`
- **Domain:** communication
- **Category:** runtime_error
- **Error Code:** `450 4.7.1`
- **Verification:** ai_generated
- **Fix Rate:** 82%

## Root Cause

The SMTP server has a per-connection or per-sender rate limit that has been exceeded, often due to sending too many emails in a short period.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| Postfix 3.7 | active | — | — |
| Exim 4.96 | active | — | — |
| Sendmail 8.17 | active | — | — |

## Workarounds

1. **Implement exponential backoff with jitter: wait 2^retry seconds + random(0-1s) before retrying. Example in Python: `time.sleep(min(2**attempt + random.uniform(0, 1), 60))`.** (82% success)
   ```
   Implement exponential backoff with jitter: wait 2^retry seconds + random(0-1s) before retrying. Example in Python: `time.sleep(min(2**attempt + random.uniform(0, 1), 60))`.
   ```
2. **Throttle sending rate to N emails per second per connection (e.g., 10 emails/s) using a token bucket algorithm.** (78% success)
   ```
   Throttle sending rate to N emails per second per connection (e.g., 10 emails/s) using a token bucket algorithm.
   ```

## Dead Ends

- **** — Increasing connection pool size without throttling may hit per-sender limit faster. (70% fail)
- **** — Switching to a different SMTP port (e.g., 587 vs 465) doesn't bypass rate limits. (90% fail)
- **** — Adding more sender addresses without reducing per-address rate still triggers limits on each. (60% fail)
