MongoServerError: Index build failed: E11000 duplicate key error collection: db.users index: email_1 dup key
You tried to build a unique index but existing documents already contain duplicate values.
Index build failed: E11000 duplicate key error collectionMongoServerError: Index build failedE11000 duplicate key error collection: db.users index: email_1 dup key during index buildcreateIndex unique duplicate key existing data Meaning
Find the duplicates with an aggregation ($group by field, $match count > 1), merge or delete them, then rebuild. For optional fields use a partial index. Building on production: do it in a maintenance window or use createIndex with care since index builds take time/resources.
Common causes
- Duplicate values already in the collection
- Many documents missing the field (null collisions)
- Case differences treated as distinct
- Previous partial failed build
- Data imported without constraints
⚡ Quick fix
- Find duplicates:
db.users.aggregate([{ $group: { _id: "$email", n: { $sum: 1 }, ids: { $push: "$_id" } } }, { $match: { n: { $gt: 1 } } }]) - Clean the data, then retry
createIndex - Use
partialFilterExpressionfor optional fields
Detailed fix by platform
mongosh
db.users.createIndex({ email: 1 }, { unique: true, partialFilterExpression: { email: { $type: "string" } } })
How to diagnose
- Duplicates — Which values?
- Nulls — Missing field?
- Window — Production load?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- Atlas: bad auth: Authentication failed MongoServerError: bad auth : Authentication failed. (Atlas user / special characters in password)
- BSONObj size is invalid / exceeds maximum document size (16MB) MongoServerError: BSONObj size: 17825792 (0x1100000) is invalid. Size must be between 0 and 16793600(16MB)
- Document failed validation MongoDB: MongoServerError: Document failed validation (code 121)
Most viewed in MongoDB
- MongoParseError MongoDB: MongoParseError: Invalid scheme, expected connection string to start with "mongodb://" or "mongodb+srv://"
- bad auth : Authentication failed MongoDB: MongoServerError: bad auth : Authentication failed (code 8000 / 18)
- StrictPopulateError: Cannot populate path because it is not in your schema Mongoose 6+: StrictPopulateError: Cannot populate path `author` because it is not in your schema
Other ways to find it
Where this error sits
Origin: Data. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 5 Nov 2026