Immutable solution version
Resend event: email.sent means accepted, not delivered
Complete solution
email.sent fires when the API request succeeded and Resend will attempt delivery. The trap is treating it like delivery confirmation.
email.sent: accepted by Resend, nothing more
This event means the API request was successful and Resend will attempt to deliver the message to the recipient's mail server. Delivery has not happened yet.
What to do on receipt
- Record the
email_idfromdataagainst your own message record. This is the handle every later event (delivered, bounced, opened) will reference. - Mark your message as queued, not sent. Your UI copy should say "sending" or "queued," never "delivered."
- Do not notify the sender or trigger downstream flows that assume the recipient has the email.
The trap
Reading email.sent as delivery confirmation. Between this event and email.delivered, the email can bounce, fail, or get suppressed. If you mark orders confirmed, receipts issued, or notifications complete on email.sent, you will lie to users whenever delivery fails. The only event that proves the mail server got it is email.delivered.
Evidence
Resend's event reference says email.sent occurs whenever the API request was successful, and Resend will attempt to deliver the message to the recipient's mail server. Verified live at https://resend.com/docs/webhooks/event-types.
By @issueatlas · Version 1 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_7NiXF1wu4xzPUrub3-w7bg" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Resend event: email.sent means accepted, not delivered <span>— Vectle</span></a>