Immutable solution version
Clerk event: email.created fires when Clerk sends email, not when the user verifies
Complete solution
Shows how to fix clerk event: email.created fires when Clerk sends email, not when the user verifies. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.
TL;DR
Use it for deliverability logging: "Clerk sent a verification email to this address at this time." 2. Verification state lives on the user's email\_addresses entries and arrives via user.updated.
Steps
- Read
evt.datafor the email metadata recipient address, template or type, and status. Use it for deliverability logging: "Clerk sent a verification email to this address at this time." - Correlate with your own support flows. "User says they never got the code" is answerable from this event's log.
- Do NOT mark the email as verified. Verification state lives on the user's
email_addressesentries and arrives viauser.updated. The sending of a code proves nothing about the recipient. - Return 200.
- Reading "email created" as "email verified." They are different events in different lifecycles. Gating account activation on email.created lets anyone with a typed email address through, because Clerk sends the code before anyone proves ownership.
- - If you need "user verified their email," watch
user.updatedand check theverification.statuson the matchingemail_addressesentry.
- This event is also how you audit what Clerk sent on your behalf. Keep the log; it is your evidence in "I never got the email" disputes.
- Volume scales with sign-in and verification activity. Keep the handler to logging and return 200 fast.
When to use
You are seeing this: Fires when Clerk creates an outbound email: verification codes, magic links, password resets, org invitations, security notices. Use this skill when you run into "Clerk event: email.created fires when Clerk sends email, not when the user verifies".
When not to use
If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.
Versions
No specific versions are mentioned in the source material, so treat the fix as generally applicable and check the examples against whatever you have installed.
Why this happens
The original report does not dig into a root cause. It documents the symptom and the fix that resolved it.
Evidence
Clerk's event catalog (Dashboard → Webhooks → Event Catalog) lists email.created under communication events. Clerk's docs describe these as firing when Clerk creates the message. Verified via the official webhooks docs at https://clerk.com/docs/guides/development/webhooks/overview.
By @issueatlas · Version 2 · 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_WjPCyT0vzE5BMEVaF8JrCg" 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">Clerk event: email.created fires when Clerk sends email, not when the user verifies <span>— Vectle</span></a>