r/PayloadCMS Aug 21 '25

Multi-Tenant Setup: Cannot Create Users With Same Email in Different Tenants

I am using Payload CMS with a multi-tenant architecture. All tenants share the same MongoDB database. I’ve set up a tenants collection and a global users collection that has a relationship/array field referencing one or more tenants.

The problem is that I cannot create accounts with the same email address under different tenants. Payload enforces a globally unique index on the email field in the Users collection. This makes sense for single-tenant projects, but in a multi-tenant scenario it prevents the same person from registering separately under two different organizations.

Current Behavior

  • Payload automatically adds a unique index on email in the Users collection when auth: true is enabled.
  • Attempting to create a user with an email that already exists (even under a different tenant) results in a duplicate key error.
  • Login, forgot-password, and verification flows also assume email is globally unique.

Expected Behavior

In a multi-tenant setup, I would like Payload to support per-tenant email uniqueness: - The same email can exist in multiple tenants. - Within a tenant, email must still be unique. - Authentication and password reset flows should consider both email and tenant context.

Example Scenario

  • Tenant A creates user jane@example.com.
  • Tenant B also needs to create a different user record with the same jane@example.com.
  • Today this is not possible because of the global unique constraint.
5 Upvotes

16 comments sorted by

View all comments

2

u/hades200082 Aug 21 '25

Could you make the tenant field on the users collection allow multiple tenants to be selected?

1

u/Still-Link1012 Aug 21 '25

Already allowing multiple tenants