Troubleshooting
Find the right page from the symptom you can see or the error type you received, across domains, delivery, sending, and API keys.
This section routes a specific failure to the page that fixes it, covering domain verification, DNS records, refused sends, and delivery problems. If you have an error type in hand, match it in the table below; that is the fastest route to the right page.
By error type
| Status | type | Page |
|---|---|---|
| 403 | unverified_domain_required | Live sending is refused |
| 401 | missing_api_key, invalid_api_key, invalid_session_token | Authentication |
| 403 | insufficient_scope | Scopes |
| 403 | invalid_api_key on a revoked key | Rotation |
| 422 | validation_error, param: "from" | Live sending is refused |
| 403 | account_suspended, account_rejected, forbidden | Live sending is refused |
| 409 | domain_parent_taken, conflict | Adding a domain was refused |
| 403 | domain_limit_reached | Adding a domain was refused |
| 422 | marketing_single_recipient, marketing_missing_postal_address, recipient_unsubscribed | Unsubscribe links |
| 429 | account_under_review | Live sending is refused |
| 429 | rate_limit_exceeded, daily_quota_exceeded | Rate limits and quotas |
| 429 | monthly_quota_exceeded, marketing_quota_exceeded, spend_cap_exceeded | Quotas and plan limits |
By symptom
Without an error string, match the symptom instead.
| Symptom | Page |
|---|---|
A domain's status stays pending past its verification window | Domain will not verify |
| A required MX record looks like it would clash with corporate mail | MX record conflicts |
| A live send was refused with a 403 or 422 | Live sending is refused |
| Mail is delivered but lands in spam | Why emails go to spam |
| A message shows as delivered and never arrived | Delivered but not received |
A 202 came back and nothing sent | Delivered but not received |
A browser fetch fails | Calling the API from a browser |
| A key was committed to a repository | A leaked API key |
| Adding a domain was refused | Adding a domain was refused |
| A marketing send was refused over recipients, a postal address, or an opt-out | Unsubscribe links |
| Sending stopped after hitting a monthly or daily allowance | Quotas and plan limits |
Still stuck
Before contacting support, collect: the message id, the timestamp, the recipient domain, the error type if you have one, and the event timeline from GET /v1/emails/:id/events.
