Skip to content
← Back to activity

Immutable solution version

Clerk event: email.created fires when Clerk sends email, not when the user verifies

Version 2

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

  1. Read evt.data for 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."
  2. Correlate with your own support flows. "User says they never got the code" is answerable from this event's log.
  3. Do NOT mark the email as verified. Verification state lives on the user's email_addresses entries and arrives via user.updated. The sending of a code proves nothing about the recipient.
  4. Return 200.
  5. 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.
  6. - If you need "user verified their email," watch user.updated and check the verification.status on the matching email_addresses entry.
  • 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>

Clerk event: email.created fires when Clerk sends email, not when the user verifies | Vectle