Understanding Resend's Email Delivery Architecture
Resend is a developer-first transactional email API that has become the default choice for modern SaaS products built on Next.js, Remix, and other React frameworks. Understanding how email delivery works helps you distinguish between a Resend outage and a configuration problem.
When you call the Resend API, your email flows through:
- Resend API layer — accepts your request, validates payload, queues for delivery
- Resend sending infrastructure — SMTP servers and IP pools that deliver to recipients
- Your domain's DNS — SPF/DKIM records that prove legitimacy to receiving mail servers
- Recipient mail servers — Gmail, Outlook, etc., which may apply their own filtering
This means "emails not arriving" can be a Resend infrastructure problem, a DNS misconfiguration, a spam filter at the recipient, or a bounced address — all of which look identical from the sender's perspective.
Monitor Resend Email API Delivery
Set up synthetic email delivery monitoring with Better Stack. Get alerted within minutes if Resend stops delivering emails — before your users report missing password resets and notifications.
Try Better Stack Free →How to Check if Resend Is Down
1. The Official Resend Status Page
Visit resend.com/status. This tracks the Resend API, email sending infrastructure, dashboard, and webhook delivery. If all components show green but emails are failing, the issue is likely on your configuration or the recipient side, not Resend.
2. Test the API Directly
The fastest way to confirm a Resend outage vs. a code issue is to test the API directly with curl:
curl -X POST 'https://api.resend.com/emails' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"from": "test@yourdomain.com",
"to": ["yourpersonal@email.com"],
"subject": "Resend API Test",
"text": "Testing Resend API status"
}'A 200 response with an email ID means the API is working. A 5xx response confirms an infrastructure issue. A 401 means your API key is invalid. A 422 means your payload has validation errors.
3. Check the Resend Dashboard
Log in to resend.com/emails and look at recent email logs. If emails show status "Delivered" but never arrived at the recipient, the issue is at the recipient mail server (spam filter, blocklist). If emails show "Failed" or are stuck in "Sending," that points to a Resend delivery infrastructure issue.
📡 Monitor Resend uptime every 30 seconds — get alerted in under a minute
Trusted by 100,000+ websites · Free tier available
Resend Not Working: Diagnosis by Symptom
- Check the Resend dashboard — is email status "Delivered" or "Bounced"?
- Check the recipient's spam/junk folder — SPF/DKIM issues cause spam placement
- Verify your SPF record includes Resend: dig TXT yourdomain.com | grep spf
- Verify DKIM CNAME records are propagated: dig CNAME resend._domainkey.yourdomain.com
- Test deliverability at mail-tester.com by sending a test email to their address
- Check if your sending domain is on blocklists at mxtoolbox.com/blacklists
- Verify your API key is correct — regenerate it in Resend Dashboard → API Keys
- Ensure you're using the correct key format: "Bearer re_xxxx" in the Authorization header
- Check if your API key has the required permissions for sending emails
- Look for hidden characters or whitespace if you copy-pasted the key from a .env file
- Try creating a new API key and updating your environment variables
- The "from" address must use your verified domain (not gmail.com or another provider)
- Ensure "to" is an array even for single recipients: ["user@example.com"]
- You must include either "text" or "html" content (or both)
- Check that "subject" is not empty
- React Email templates must be rendered to HTML string before passing to Resend
- You hit Resend's rate limits: free plan allows 100 emails/day and 10 requests/second
- Implement exponential backoff and retry logic in your email sending code
- Batch sends using Resend's bulk email endpoint instead of individual API calls
- Upgrade your plan if you regularly need to send more than the free tier allows
- Check if another process is also sending emails and consuming your quota
- Check resend.com/status for webhook delivery infrastructure incidents
- Verify your webhook endpoint is publicly accessible (not localhost)
- Check Resend Dashboard → Webhooks → click your webhook to see delivery logs
- Ensure your webhook endpoint returns a 2xx response within 5 seconds
- Verify the webhook signing secret matches what you're using to validate in your code
Resend API Error Codes Reference
| HTTP Code | Error | Fix |
|---|---|---|
| 200 | OK — email queued | Success. Wait for webhook events for delivery status. |
| 400 | Bad Request | Check your JSON payload format and required fields |
| 401 | Unauthorized | Invalid API key — regenerate at resend.com/api-keys |
| 403 | Forbidden | Domain not verified or key lacks permissions |
| 422 | Unprocessable Entity | Validation error — check "from" domain is verified, "to" is array, content present |
| 429 | Too Many Requests | Rate limit hit — implement backoff, check plan limits |
| 500 | Internal Server Error | Resend infrastructure issue — check resend.com/status and retry |
| 503 | Service Unavailable | Temporary outage — retry with exponential backoff |
Setting Up Resend with DNS: SPF & DKIM Checklist
The most common cause of email delivery failures is incorrect DNS configuration, not a Resend outage. Use this checklist:
Alert Pro
14-day free trialStop checking — get alerted instantly
Next time Resend goes down, you'll know in under 60 seconds — not when your users start complaining.
- Email alerts for Resend + 9 more APIs
- $0 due today for trial
- Cancel anytime — $9/mo after trial
Resend Alternatives for Email API Fallback
If Resend is experiencing an extended outage, here are the best developer-friendly email API alternatives:
Frequently Asked Questions
Is Resend down right now?
To check if Resend is currently down, visit resend.com/status for the official status page or check our real-time monitor at apistatuscheck.com. If emails are not being delivered, the API is returning errors, or the dashboard is inaccessible for many users, it is likely a platform-wide incident.
Why are my Resend emails not being delivered?
Resend email delivery failures are commonly caused by: (1) Resend API or SMTP infrastructure incidents — check resend.com/status, (2) SPF/DKIM DNS records not correctly configured for your domain, (3) Your sending domain being on a blocklist, (4) Sending to invalid or bounced email addresses exceeding Resend's bounce threshold, (5) Your API key missing required permissions, or (6) Rate limits on the free or starter plan being exceeded.
Why is the Resend API returning an error?
Common Resend API errors: 401 Unauthorized means your API key is invalid or missing. 422 Unprocessable Entity means your request payload has validation issues (check required fields like "from", "to", "subject"). 429 Too Many Requests means you hit rate limits — check your plan limits. 500 Internal Server Error indicates a Resend infrastructure issue — check resend.com/status and retry with exponential backoff.
How do I check Resend status?
Visit resend.com/status for the official Resend status page. For independent verification, check apistatuscheck.com. You can also follow @resend on X (Twitter) where the team posts incident updates.
What are good Resend alternatives?
If Resend is down or you need a fallback, consider: SendGrid (industry standard, reliable), Postmark (excellent deliverability for transactional email), AWS SES (cheapest at scale, needs more setup), Mailgun (good developer API), or Loops (built for SaaS email, similar API to Resend). For multi-provider failover, use a service like Courier that routes across multiple providers.
How do I set up Resend with SPF and DKIM?
In the Resend dashboard, go to Domains → Add Domain → enter your domain. Resend will provide SPF and DKIM DNS records to add to your DNS provider. SPF: add a TXT record with "v=spf1 include:resend.com ~all". DKIM: add the provided CNAME records. Verification takes 24-48 hours but often completes in minutes. Without these records, emails will land in spam or be rejected.