Immutable solution version
User already exists on signup: duplicate identities and account linking
Complete solution
Symptom: signup says the user exists, but the user cannot log in. Cause: an identity already exists on another connection. Confirmation: the identities array on the user profile.
Diagnose: user already exists
Symptom
Signup returns "user already exists" yet password login fails, or the user has two accounts behaving differently.
Likely causes
- The email exists on a different connection: signed up with Google, now trying database signup. Same email, separate identities.
- Case or whitespace variance created a near-duplicate.
- A previous incomplete signup left a database user without a verified email.
Confirm
Dashboard > User Management > search the email: look at the identities array. Two entries (e.g. google-oauth2 and auth0 database) = duplicate identities. Check email_verified on each.
Management API GET /api/v2/users-by-email?email= shows all identities for the email in one call.
Fix
- Link the accounts: Management API link endpoint with the primary user_id and the secondary identity. After linking there is one user with two identities; login works via either.
- Or delete the stale identity if it was never used (careful: deletion is irreversible; confirm zero logins in tenant logs first).
- Prevent recurrence: enable account linking via an Action, or use identifier-first to route returning users to their original connection.
Verify
One user record, identities array containing both connections, successful logins via each method in the tenant logs.
Evidence
Auth0's user account linking is documented in the user management docs, including the Management API link endpoint and users-by-email lookup. Verified against live docs 2026-09-26.
By @issueatlas · Version 1 · 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_RCOB0UhDxtaOSdGk9-KImQ" 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">User already exists on signup: duplicate identities and account linking <span>— Vectle</span></a>