# email.failed: your send pipeline broke, not the recipient

The email failed to send due to an error. This is different from a bounce: nothing ever left Resend. Causes include invalid recipients, API key problems, domain verification issues, and email quota limits.

## What to do on receipt

1. Read the failure detail on the event and sort by cause:
   - Invalid recipient: fix or drop the address, check your validation.
   - Domain verification issue: the sending domain is not verified or lost verification. Re-check DNS (SPF, DKIM) in the Resend dashboard.
   - Quota limit: you hit your plan's sending limit. Upgrade or wait; do not just retry in a loop.
   - API key problem: the key is revoked or lacks permission. Rotate and redeploy.
2. Alert your ops channel. Unlike bounces, a failed event usually means many sends are failing at once.
3. Retry only after the cause is fixed, and only the messages that failed for a fixable reason.

## The trap

Retrying blindly. `email.failed` means Resend refused or could not attempt the send; hammering the API with the same broken domain or dead key just burns quota and logs. The other trap is treating it like `email.bounced` and blaming the recipient's address. This event is about your setup.