Salesforce Insights for Regulated Industries | Vantage Point

Salesforce Sandbox Emails Stuck at .invalid? Fix Logins

Written by David Cockrum | Oct 23, 2026, 11:59:59 AM

Quick Answer

 

Salesforce appends .invalid to every user's email address when a sandbox is created or refreshed — on purpose, so test environments can't email real addresses. The side effect: verification links, welcome emails, and password resets for those users are sent to an address that doesn't exist, so users click a link, land on the login page, and can't get in. The per-user fix takes under a minute: in Setup > Users, edit the user, remove .invalid from the email address, check "Generate new password and notify user immediately," and save — that sends the verification and the password setup in one pass. For users who already clicked a verification link and got stuck, use Reset Password from the user list after the address is clean. This matters for any admin who has refreshed a sandbox, created users in one, or heard "I never got the email" right after a refresh.

TL;DR

  • What it is: after a sandbox refresh, Salesforce rewrites user emails to user@domain.com.invalid so the test org can't email real people.
  • Why it breaks logins: verification and password-reset emails go to the dead .invalid address, so users can never set a password.
  • The fast fix: edit the user, remove the suffix, tick "Generate new password and notify user immediately," save — one email does verification and password setup.
  • The bulk fix: export users, strip the suffix, re-import, then reset passwords for whoever needs in.
  • How Vantage Point helps: Salesforce consulting includes sandbox refresh runbooks that handle this step automatically.

Why does Salesforce append .invalid to sandbox user emails?

Because sandboxes copy production data — including every user's email address — and a test environment that can email real people is a genuine risk. Workflow alerts, approval requests, scheduled reports, and password resets firing from a sandbox look legitimate to recipients and create confusion at best and phishing-shaped incidents at worst. Salesforce's answer is blunt and effective: on refresh, every user email in the new sandbox is rewritten with an .invalid suffix. The address alex@yourcompany.com becomes alex@yourcompany.com.invalid, which resolves nowhere. Salesforce documents this behavior directly — it is intentional, not a bug or a sync error.

Two details matter for planning. First, this happens on every refresh, not just the first — a monthly refresh cadence means a monthly cleanup task. Second, the same trap appears outside refreshes: when an admin creates or edits a user in a sandbox and mistypes or pastes an address carrying the suffix, the same failure follows. The pattern to recognize is always "the address on the user record is not a deliverable address."

What actually breaks when the address ends in .invalid?

The failure mode is confusing because half of it works. The user exists. They appear in the user list. They may even receive a verification email — once. Here's the chain that produces the classic stuck state:

  • Verification links dead-end. Changing an email on a user record sends a verification link to the new address. If that address ends in .invalid, no one receives it — or worse, the user received it earlier, clicked it, and now sits at a login page with no password.
  • Password resets go nowhere. "Reset Password" sends the reset email to the address on file. While the address still carries .invalid, the reset email is undeliverable, so self-service recovery is impossible.
  • Welcome emails vanish. New users created in the sandbox never receive their "set your password" invitation if their address carried the suffix at creation time.
  • Email-based testing silently fails. Alert and approval testing in the sandbox produces nothing until addresses are corrected — easy to misread as broken automation.

Recent releases have tightened email-address verification further, which makes a clean, deliverable address more load-bearing than it used to be. Treat the user email field as part of the login mechanism, not a profile detail.

How do you fix one user's login?

This is the fix that resolves the majority of "I can't get into the sandbox" tickets:

  1. Go to Setup > Users > Users and open the user's record.
  2. Click Edit. Remove .invalid from the Email field so the address is the user's real, deliverable address.
  3. Before saving, check "Generate new password and notify user immediately." This is the step people miss — it bundles email verification and a fresh password-setup email into a single send, so the user isn't left in the clicked-but-passwordless state.
  4. Save. The user receives one email, confirms the address, sets a password, and logs in.

If the user already clicked a verification link earlier and is stuck at the login page, the order matters: fix the address first, then use Reset Password from the user list. Resetting before the address is clean just sends another email into the void. Once the address is deliverable, the reset arrives normally.

How do you fix a whole sandbox's users at once?

After a full refresh, fixing users one at a time doesn't scale. The bulk path:

  1. Export the user list (a report on User with ID, Username, and Email, or a Data Loader extract).
  2. Strip the suffix — a find-and-replace of .invalid against the Email column handles it. Keep usernames untouched; sandbox usernames carry their own .sandboxname suffix and must stay as-is.
  3. Update via Data Loader using the User ID as the key.
  4. Reset passwords for the users who need in — or have each of them use "Forgot password," which now works because the address is deliverable.

One scoping decision saves real time: not every production user needs sandbox access. Many teams fix emails only for the testers and admins who actually work in the sandbox, and leave the rest .invalid — which is arguably the safer state, since those users can't be emailed by accident.

How do you keep this from biting you on the next refresh?

Put it in the refresh runbook. A sandbox refresh checklist that ends at "refresh complete" is missing its last mile:

  • Post-refresh user task: a named step, with an owner, to correct emails for the sandbox user population and trigger password resets.
  • A standing tester list: the dozen or two people who always need sandbox access, so the bulk fix has a defined scope.
  • Deliverability check: confirm the sandbox's email deliverability setting matches what your testing needs (System email only vs. All email) before declaring the refresh done.
  • A verification pass: one test user logs in, receives an alert email, and confirms the environment can send — catching both the .invalid problem and any deliverability misconfiguration in one step.

What should businesses do next?

If users are locked out of a sandbox today, start with the per-user fix for the people who are blocked — it genuinely takes under a minute each — and schedule the bulk cleanup for the full user list right after. If refreshes are a regular event, write the user-email step into the runbook so it stops being a surprise. And if sandbox management generally keeps generating tickets — access, data, deliverability, stale copies — that's a sign the refresh process wants an owner and a checklist, not more heroics.

How Vantage Point Helps

Vantage Point's Salesforce consultants build sandbox strategy into every implementation: refresh runbooks that include user-email remediation, tester lists, and post-refresh verification, so test environments are usable the same day they're created. For teams that want this handled continuously, managed services cover sandbox hygiene alongside day-to-day admin — including the access tickets that follow every refresh when the process is informal.

Sandbox access problems slowing down testing?

Vantage Point is a Salesforce and HubSpot Solutions Partner and is employee-owned. Senior consultants only — no junior handoffs; the experts you meet are the experts who deliver.

Get started with a sandbox and access review

Frequently Asked Questions

Why do Salesforce sandbox emails end in .invalid?

Salesforce appends .invalid to every user email during sandbox creation and refresh so the test environment cannot send mail to real addresses. It is an intentional safety feature, and it repeats on every refresh — which is why the fix belongs in the refresh runbook.

A user clicked the verification link but can't log in — what now?

First correct the email address on the user record (remove .invalid), then use Reset Password from the user list. Resetting before the address is fixed sends the email to an undeliverable address; resetting after delivers normally and lets the user set a password.

What does "Generate new password and notify user immediately" do?

It sends the user a fresh password-setup email as part of the save — combining address verification and password creation in one pass. When you correct a sandbox email, ticking this box prevents the common "verified but has no password" stuck state.

Can I fix .invalid emails for all users at once?

Yes. Export the User object with ID and Email, strip the .invalid suffix from the Email column (leave usernames alone), and update with Data Loader. Then trigger password resets or have users self-serve with "Forgot password," which works once addresses are deliverable.

Should every production user get a working sandbox email?

Not necessarily. Many teams correct emails only for admins and testers who actually use the sandbox, leaving other users' addresses invalid. That is both less work and safer — users without sandbox duties can't receive confusing test email.

Does this affect SSO users?

SSO authentication doesn't depend on the Salesforce password, so SSO users may log in fine with an .invalid address — but they still won't receive any email the sandbox sends. If those users test approval or alert emails, their addresses still need correcting.

Sources