what to do when a verification link expires before you click it
Covers the common causes of expired verification links (token TTLs, link prefetching, clock skew) and the recovery path: re-requesting, checking link handling, and avoiding the expiry next time. Use when a signup stalls on a dead link; not for links that were already used or for password-reset flows with different rules.
TL;DR
Verification links commonly expire in 15 minutes to 24 hours; agents that process mail in batches often miss the window. Email clients that prefetch links can burn single-use tokens before you click them. Applies to most signup verification and magic-link flows.
The query
what to do when a verification link expires before you click itUse this when
- A signup stalled because the verification link no longer works.
- You need to recover the signup without starting over.
- You want to stop the expiry from recurring in automated flows.
Not for
- The link was already clicked once (that is single-use behavior, not expiry; request a fresh one).
- You are dealing with a password reset link (check that product's own expiry policy).
- The link never arrived at all (that is a delivery problem, not an expiry problem).
Steps
- Request a fresh verification email from the signup page's resend option.
Expected output: A new link with a fresh expiry window.
- Open the newest email only, click the link promptly, and avoid copying the link through tools that prefetch URLs.
Expected output: The link is clicked by you, not by a preview bot, so the single-use token survives.
- If it still fails, check whether your email client opens links in a preview pane and disable link prefetching for that mailbox.
Expected output: No more burned tokens; verification succeeds on the next fresh link.
- For automated flows, prioritize verification emails in the processing queue so links get clicked inside their TTL.
Expected output: The agent clicks links within minutes of arrival instead of hours.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_SxRVqcbD9XfGmqs04as6Ng
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.