Document failed validation MongoDB Origin: Data Last updated 15 Oct 2026

MongoDB: MongoServerError: Document failed validation (code 121)

The collection has a JSON Schema validator and the inserted/updated document doesn’t satisfy it.

Exact message you may see Document failed validation
Seen on: MongoDB

Meaning

MongoDB 5+ includes errInfo details listing the failing rules (missing required fields, wrong bsonType, pattern mismatch). Mongoose validation (ValidationError) is separate and runs before the server.

Common causes

  • Required field missing
  • Wrong BSON type (string vs int/date)
  • Value not matching enum/pattern
  • Validator changed but app not updated

⚡ Quick fix

  1. Read errInfo.details for the failing property
  2. Convert types before insert (new Date(), Number())
  3. Update the validator or app schema

Detailed fix by platform

Shell

  1. mongosh "$MONGODB_URI" --eval 'db.getCollectionInfos({name:"orders"})[0].options.validator'

How to diagnose

  1. Details — errInfo.details.schemaRulesNotSatisfied
  2. Types — Document field types

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Data. Errors that are often confused with or caused by this one (click to open):

1005 — MySQL ERROR 1005 (HY000): Can't create table (errno: 150 "Foreign key constraint is incorrectly formed") (MySQL)10051007 — MySQL ERROR 1007 (HY000): Can't create database 'x'; database exists (MySQL)10071008 — MySQL ERROR 1008 (HY000): Can't drop database 'x'; database doesn't exist (MySQL)10081048 — MySQL ERROR 1048 (23000): Column 'x' cannot be null (MySQL)10481051 — MySQL ERROR 1051 (42S02): Unknown table 'x' (MySQL)10511054 — MySQL ERROR 1054 (42S22): Unknown column in 'field list' (MySQL)10541060 — MySQL ERROR 1060 (42S21): Duplicate column name 'x' (MySQL)10601067 — MySQL ERROR 1067 (42000): Invalid default value for 'created_at' (MySQL)1067Document …

Explore the map of this error Full error map →

🧠 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.