Troubleshooting
Why didn't my email arrive?
A step-by-step checklist for emails that never reached the recipient. Find the email, read its status and follow the fix for that status.
Use this checklist when a recipient says they didn’t get your email. Emailit records every message and every delivery attempt, so the email’s status tells you where it stopped.
Symptoms
- A customer didn’t receive a receipt, sign-in code or password reset.
- Your app reports success, but the recipient sees nothing.
- Some recipients get your emails and others don’t.
Cause
An email can stop at four points: your request was rejected, Emailit didn’t send it, the receiving server refused it, or the receiving server accepted it and filed it somewhere the recipient didn’t look. The email’s status shows which one:
| Status | What happened | Next step |
|---|---|---|
| No email found | The request never created an email | Check Email APILogs for a 4xx response |
| Accepted or Scheduled | Waiting to be sent | Why is my email stuck in Accepted or Scheduled? |
| Attempted | Temporarily refused, being retried | What does the Attempted status mean? |
| Held | Stopped before sending | Why is my email held? |
| Suppressed | Address is on your suppression list | Why was my email suppressed? |
| Bounced | Permanently refused | Hard vs soft bounces |
| Rejected | Your unverified workspace can’t send to this address | 403 unverified_workspace_recipient |
| Failed | An error stopped delivery | Read the reason on the Deliveries tab |
| Canceled | Someone canceled it | Send it again if needed |
| Delivered, Loaded or Clicked | The recipient’s server accepted it | Continue with step 4 below |
Fix
-
Find the email. Go to Email APIEmails, search for the recipient’s address and widen the date range if needed. Each recipient gets their own email, so search for the exact address.
-
If there’s no email, check the request. Open Email APILogs and look for failed requests around that time. Common responses are
401(bad API key),402(no credits),403(unverified workspace),422(domain not verified) and429(rate limit). See API errors. For SMTP, filter Source to SMTP. -
Read the status and the Deliveries tab. Open the email. The Deliveries tab shows every attempt with the receiving server’s reply. Follow the link in the table above for the status you see.
-
If it was delivered, check the recipient’s side. The reply on the Deliveries tab proves their server accepted it. Ask the recipient to check spam, junk, promotions and quarantine folders, forwarding rules and filters. Company mail gateways sometimes quarantine mail after accepting it, so their IT team may need to release it.
-
Check the address. Typos such as
gmial.comare common. Use email verification to test an address you’re unsure about. -
Check your other recipients. If many emails to one provider are missing, read Why are my emails going to spam?.
To get notified automatically, subscribe a webhook to email.bounced and email.suppressed. Webhooks that receive all events also get email.held. For every status, see Email statuses.
Still stuck?
Contact support or ask in Discord. Include the email ID (em_…), the recipient’s address and the time you sent it.