# Diagnose: user already exists

## Symptom

Signup returns "user already exists" yet password login fails, or the user has two accounts behaving differently.

## Likely causes

1. The email exists on a different connection: signed up with Google, now trying database signup. Same email, separate identities.
2. Case or whitespace variance created a near-duplicate.
3. 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.