password reset email never arrived" how to troubleshoot
A step-by-step triage for reset emails that never land: spam and promotions folders, the typo'd signup address, corporate email filters, delayed senders, and when to fire a manual reset from the admin console. Use when a user reports a missing reset email, the flow silently fails, or the link they got expired. Not for accounts locked by failed attempts, SSO logins, or reset links that arrive but error on click.
TL;DR
Nine times out of ten the email went to spam, a typo'd address, or a corporate filter that ate it. Walk the user through the mailbox first, verify the exact address on the account, resend once, then escalate to a manual reset instead of spamming resends. Resending five times in a row just fills their spam folder with five dead links.
The query
"password reset email never arrived" how to troubleshootUse this when
- A user says the reset email never showed up
- The reset flow completes with no error but no email lands
- The user got a link but it expired before they clicked
- Resending once did not fix it
- You are writing the macro your team uses for this ticket type
Not for
- Accounts locked by too many failed attempts
- SSO or social-login failures
- Reset links that arrive but show an error page
- Users who cannot access the email inbox at all
Steps
1. Confirm the exact email address on the account
Ask the user which address they typed, then read back the one on file character by character. A missing letter or an old work address is the number one cause. Never send a reset to an address the user just invented in chat.
Expected output: the address on the account matches what the user typed, or you found the mismatch.
2. Check spam, promotions, and the trash
Have them search their inbox for your sender name, not just skim. Corporate Gmail puts automated mail in Promotions; Outlook filters it to Junk silently. On phones, some clients never show the spam folder unless you dig for it.
Expected output: the email is found in a filtered folder, or ruled out.
3. Wait and resend exactly once
Some providers queue automated mail 5 to 15 minutes behind. Wait ten minutes, resend one fresh link, and tell the user to use only the newest one. Old links usually die the moment a new one is generated.
Expected output: one fresh link in flight, and the user knows older ones are dead.
4. Ask about corporate filters and rules
If they use a work address, ask their IT team whether your sender domain is blocked or quarantined. Many corporate gateways hold password mail for review without telling the recipient. If so, whitelist your sending domain on their end.
Expected output: a blocked-or-not verdict from their IT side, or an address change to a personal mailbox.
5. Trigger a manual reset from the admin console
If the mail still has not landed after one resend and a spam check, stop resending. Generate a one-time reset from the admin panel or copy the fresh link from the email logs and read it back to them over the verified channel.
Expected output: the user is in the app, or the ticket moves to engineering with send-log evidence.
Ready-to-use customer message
Let's track down that reset email. Can you check:
1. Your spam/junk folder and the Promotions tab, and search
for our name
2. Which address you typed on the reset form, letter by letter
I'm going to send you one fresh link right now. Use only this
newest one, since older ones stop working. If it doesn't land
within 10 minutes, reply here and I'll reset it manually from
my side.Variant phrasings
reset password email not received
Same five steps. Start with step 1 anyway, because half of these are address typos the user swears they did not make.
password reset link expired before I got it
Skip to step 3: one fresh resend, tell them to open it within the expiry window, and confirm the newest-link-only rule.
user never received account reset email corporate address
Jump to step 4. Corporate gateways quarantine this mail constantly. The fix is almost always on the IT side, not yours.
Why it happens
Automated mail is the lowest-trust mail on the internet, so every filter in the chain treats it with suspicion. The user sees "I pressed the button and nothing happened" and assumes the app is broken, but the app usually did its job and the email died somewhere between your sender and their inbox. That is why the fix order is mailbox, address, filter, then resend, not resend first.
Edge cases
- User signed up with a typo and no longer has the inbox: verify identity another way, then change the address on file.
- Shared mailboxes where nobody checks: get a named address from the user and update the account.
- Links arrive but show expired instantly: your expiry window may be shorter than the mail delay. Shorten the troubleshooting and lengthen the link lifetime.
- Resend button clicked 20 times: the user now has 20 links and will click the oldest one. Tell them explicitly to search for the newest email by time, not open the first one they see.
- No-reply sender the user blocked long ago: have them unblock your domain, then resend.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_e4WUKX3uHcO2ioPWCkkmAA
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.