Risoluzione dei problemi
Perché ricevo l’errore 429 Rate limit exceeded?
Gestisci le risposte 429 dell’API di Emailit. Scopri i limiti di invio al secondo e giornalieri, gli header dei limiti di frequenza e come chiedere limiti più alti.
Questo articolo spiega perché POST /v2/emails restituisce 429 e come distribuire gli invii nel tempo per evitarlo. Gli stessi limiti valgono per l’SMTP, dove si presentano come risposte 452.
Sintomi
L’API risponde con 429 e uno di questi corpi:
{
"error": "Rate limit exceeded",
"message": "Too many requests. Maximum 2 messages per second allowed.",
"limit": 2,
"current": 2,
"retry_after": 1
}{
"error": "Daily limit exceeded",
"message": "Daily sending limit of 5000 messages has been reached.",
"limit": 5000,
"current": 5000,
"retry_after": 41200
}Via SMTP, il comando MAIL FROM non riesce con 452 4.4.5 Messages per second limit exceeded o 452 4.5.3 Daily message limit exceeded.
Causa
Ogni workspace ha due limiti di invio, condivisi da tutte le chiavi API e dall’SMTP:
- Al secondo. I nuovi workspace partono da 2 email al secondo.
- Al giorno. I nuovi workspace partono da 5000 email al giorno. Il contatore si azzera a mezzanotte UTC.
L’API conta ogni destinatario come un’email, quindi una richiesta con tre indirizzi tra to, cc e bcc ne usa tre. Le cause più comuni sono i picchi da worker in parallelo, i cicli di nuovi tentativi senza backoff e i job in batch che partono tutti alla stessa ora.
Ogni risposta di invio include header che ti dicono a che punto sei:
| Header | Significato |
|---|---|
ratelimit-limit / ratelimit-remaining |
Limite al secondo e quanto resta nel secondo corrente |
ratelimit-daily-limit / ratelimit-daily-remaining |
Limite giornaliero e quanto resta oggi |
ratelimit-daily-reset |
Secondi mancanti alla mezzanotte UTC |
retry-after |
Secondi da attendere prima di riprovare (solo con 429) |
Soluzione
-
Attendi e riprova. Rispetta
retry-after(oretry_afternel corpo) prima di inviare di nuovo. Una richiesta con risposta429non viene inviata né addebitata, quindi puoi ritentarla senza rischi. Aggiungi unaIdempotency-Keyper proteggerti dai nuovi tentativi a livello di rete. -
Regola il ritmo degli invii. Usa una coda con un limite di concorrenza pari a
ratelimit-limite, dopo un429, applica un backoff esponenziale invece di ritentare in un ciclo stretto. -
Distribuisci gli invii grandi. Se raggiungi il limite giornaliero, programma il resto con
scheduled_atdopo la mezzanotte UTC, oppure usa una campagna per le email di marketing. -
Controlla i limiti attuali. Il riquadro Sending Limits nella pagina Dashboard mostra i limiti al secondo e giornalieri e l’utilizzo di oggi.
-
Chiedi limiti più alti. Seleziona Request Increase nel riquadro Sending Limits e indica i limiti che ti servono, da dove arrivano i tuoi destinatari e perché. Di solito il team risponde entro 24 ore. Con Pro e Business i limiti aumentano anche automaticamente finché la salute degli invii resta buona.
Vedi Limiti di frequenza per il riferimento completo e Limiti e quote per tutte le quote dei piani.
Serve ancora aiuto?
Contatta il supporto o chiedi su Discord. Indica il volume previsto al giorno e al secondo e un esempio di risposta 429.