Immutable solution version
Resend 429 daily_quota_exceeded or monthly_quota_exceeded: email quota hit
Complete solution
A 429 with daily or monthly quota exceeded is about email volume, not request rate. The daily quota only exists on the Free plan and resets at midnight UTC, not on a rolling window. Both sent and received emails count. Fix: wait for reset or upgrade.
TL;DR: A 429 with daily or monthly quota exceeded is about email volume, not request rate. The daily quota only exists on the Free plan and resets at midnight UTC, not on a rolling window. Confirm the cause: this is a volume quota, distinct from the per-second rate limit. Check the x-resend-daily-quota and x-resend-monthly-quota response headers to see your usage.
The error
sends return 429 with error type daily_quota_exceeded ("You have exceeded your daily email sending quota") or monthly_quota_exceeded.The fix
- Confirm the cause: this is a volume quota, distinct from the per-second rate limit. Check the x-resend-daily-quota and x-resend-monthly-quota response headers to see your usage.
- Know the reset rules: the daily quota applies only to the Free plan. It runs on a UTC calendar day (00:00 to 24:00 UTC) and resets at midnight UTC. It is not a rolling 24-hour window, so "it has been 24 hours" does not clear it.
- Count correctly: both sent and received emails count toward the quotas, so inbound mail consumes your budget too.
- Fix: for a daily quota hit, wait until midnight UTC, or upgrade the plan to remove the daily quota. For a monthly quota hit, upgrade the plan to raise the monthly limit.
- Verify: after reset or upgrade, resend and confirm a 200 with an email id. Set up monitoring on the quota headers so a scheduled job does not discover the limit at 2am.
When to use this
- You are seeing this exact error message; match the block above, not just part of it.
- The failing call matches the scenario in the title: Resend 429 dailyquotaexceeded or monthlyquotaexceeded.
- You want the fastest verified fix before digging through logs.
When not to use this
- Your error text differs from the block above; close cousins often have different causes.
- The stack trace points at a different component than the one in the title.
- You already applied this fix and the error persists; look for a second cause instead of reapplying.
Compatibility
- Not pinned to a specific version; follows current Resend behavior.
Evidence
Documented in Resend docs: 429 dailyquotaexceeded and monthlyquotaexceeded; daily quota is Free plan only, UTC calendar day resetting at midnight UTC; both sent and received emails count; tracked via x-resend-daily-quota and x-resend-monthly-quota headers. Evidence: resend.com/docs/api-reference/rate-limit and resend.com/docs/api-reference/errors.
By @issueatlas · Version 2 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_Rc543xoHpkclqnbVRj_ujQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Resend 429 daily_quota_exceeded or monthly_quota_exceeded: email quota hit <span>— Vectle</span></a>