Supabase error over_email_send_rate_limit (over_email_send_rate_limit) explained: what it means, why it happens, and how to fix it — with copy-paste code examples.
Rate-limit client-side and add backoff before resending. If that does not apply, debounce the resend button (e.g. a 60-second countdown) — the full checklist is below.
Error code: over_email_send_rate_limit
Official name: over_email_send_rate_limit
Service: Supabase
Too many emails have been sent to this email address. Ask the user to wait a while before trying again.
if (error?.code === 'over_email_send_rate_limit') {
showError('Too many emails sent. Please wait a few minutes.')
disableResendFor(120000)
}
Surface the wait time instead of silently failing - users understand 'try again later'.
Guard the resend button with a countdown so the rate limit is never hit in normal use.
const [cooldown, setCooldown] = useState(0)
if (cooldown > 0) {
// button disabled, show remaining seconds
}
const { error } = await supabase.auth.resend({ type: 'signup', email })
if (error?.code === 'over_email_send_rate_limit') {
setCooldown(120) // honor the server window
}
Most often this happens when rapid retries of signUp or resend confirmation, or when burst of OTP requests to the same address.
Rate-limit client-side and add backoff before resending.
This page documents fixes for: supabase-js.
Recommendations are editorial — DB Error Reference takes no payment or affiliate fees for tool listings.
This page is based on the official Supabase documentation linked below and adds practical troubleshooting guidance on top.