Skip to content
AI Inbx
Esc
↑↓navigate↵open⌘Jpreview
On this page

email.bounced

email.bounced fires when delivery fails, hard or soft. A hard bounce writes a suppression, so the next send to that address never leaves.

Delivery failed. Creates a suppression automatically, so the next send to that address never leaves.

Payload

Every field, with an example body, is in the email.bounced reference, generated from the API contract.

Handling it

if (event.type === "email.bounced" && event.data.permanent) {
  await markUndeliverable(event.data.recipients, event.data.reason)
}

A permanent bounce means the address is wrong — stop showing it as valid in your own UI. A soft bounce is usually transient and not worth acting on.

The suppression a hard bounce writes goes on the workspace’s * list whatever space_id the event carries — the address exists for nobody, so no space should try it either.

Last updated on September 30, 2026

Was this page helpful?