PyMongo: pymongo.errors.BulkWriteError: batch op errors occurred
A bulk insert/update had one or more failed operations; details are in e.details.
pymongo.errors.BulkWriteError: batch op errors occurredBulkWriteError: batch op errors occurredpymongo BulkWriteError E11000 duplicate keyMongoBulkWriteError: E11000 duplicate key error collection Meaning
Catch the exception and inspect e.details['writeErrors'] for index, code and message (e.g. 11000 duplicate). Use ordered=False to continue after errors, and handle duplicates deliberately (upsert, $setOnInsert).
Common causes
- Duplicate keys in
insert_many - Validation failures
- Unique index violations
- Writes exceeding size limits
- Permission errors
⚡ Quick fix
try: ... except BulkWriteError as e: print(e.details["writeErrors"])- Use
ordered=False - Replace inserts with upserts where appropriate
Detailed fix by platform
Python
coll.insert_many(docs, ordered=False) # continue past duplicates
How to diagnose
- details — writeErrors?
- Code — 11000?
- Ordered — False?
🔧 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