# email.failed

Event triggered whenever the **email failed to send due to an error**.

This event is triggered when there are issues such as invalid recipients, API key problems, domain verification issues, email quota limits, or other sending failures.

## Response Body Parameters

All webhook payloads follow a consistent top-level structure with
event-specific data nested within the `data` object.

- `type` (string) — The event type that triggered the webhook (e.g., `email.failed`).

- `created_at` (string) — ISO 8601 timestamp when the webhook event was created.

- `data` (object) — Event-specific data containing detailed information about the event. The data object for the `email.failed` event contains the following parameters:

::::accordion{title="object parameters"}
* `broadcast_id` (string) — Unique identifier for the broadcast campaign (if applicable)

* `created_at` (string) — ISO 8601 timestamp when the email was created

* `email_id` (string) — Unique identifier for the specific email

* `message_id` (string) — RFC Message-ID header value for the email

* `from` (string) — Sender's email address. For sent events, this matches the value passed at send time and may include a display name (e.g., `Name <email@domain.com>`). For received events, this is the bare email address only; the display name from the original `From:` header is preserved in `headers.from` on the [retrieve endpoint](/guides/receiving-retrieve-received-email).

* `to` (array) — Array of impacted recipient email addresses

* `subject` (string) — Email subject line

* `template_id` (string) — Unique identifier for the template used (if applicable)

* `tags` (Record\<string, string>) — Object of tag key-value pairs associated with the email.

Example:

```json theme={"theme":{"light":"github-light","dark":"vesper"}}
{
  "category": "welcome",
  "user_id": "1234567890"
}
```

- `failed` (object) — Failure details

:::accordion{title="failed object"}
* `reason` (string) — Reason for the email failure (e.g., `reached_daily_quota`)
:::
::::

```json theme={"theme":{"light":"github-light","dark":"vesper"}}
{
  "type": "email.failed",
  "created_at": "2026-11-22T23:41:12.126Z",
  "data": {
    "broadcast_id": "8b146471-e88e-4322-86af-016cd36fd216",
    "created_at": "2026-11-22T23:41:11.894Z",
    "email_id": "56761188-7520-42d8-8898-ff6fc54ce618",
    "message_id": "<111-222-333@email.example.com>",
    "from": "Acme <onboarding@resend.dev>",
    "to": ["delivered@resend.dev"],
    "subject": "Sending this example",
    "template_id": "43f68331-0622-4e15-8202-246a0388854b",
    "failed": {
      "reason": "reached_daily_quota"
    },
    "tags": {
      "category": "confirm_email"
    }
  }
}
```

## Related pages

- [email.bounced](./learn-webhooks-emails-bounced.md)
- [email.clicked](./learn-webhooks-emails-clicked.md)
- [email.complained](./learn-webhooks-emails-complained.md)
- [email.delivered](./learn-webhooks-emails-delivered.md)
- [email.delivery_delayed](./learn-webhooks-emails-delivery-delayed.md)
- [email.opened](./learn-webhooks-emails-opened.md)
- [email.received](./learn-webhooks-emails-received.md)
- [email.scheduled](./learn-webhooks-emails-scheduled.md)
- [email.sent](./learn-webhooks-emails-sent.md)
- [email.suppressed](./learn-webhooks-emails-suppressed.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
