Mongoose: Model.find() no longer accepts a callback MongoDB Origin: Data OSI layer 7 · Application Last updated 5 Nov 2026

MongooseError: Model.find() no longer accepts a callback

Mongoose 7+ removed callback support from queries; they return promises.

Exact message you may see MongooseError: Model.find() no longer accepts a callbackModel.findOne() no longer accepts a callbackQuery.prototype.exec() no longer accepts a callbackModel.prototype.save() no longer accepts a callbackno longer accepts a callback Mongoose
Seen on: MongoDB Node.js

Meaning

Replace callbacks with await/.then(). Model.find({}, cb) becomes await Model.find({}). Same for save, exec, findOne, updateOne. Upgrade guides list all removed callback APIs.

Common causes

  • Code written for Mongoose 5/6 callbacks
  • Old tutorials
  • Library wrappers still passing callbacks
  • Express handlers with nested callbacks
  • Upgraded Mongoose without refactoring

⚡ Quick fix

  1. Use const docs = await Model.find({})
  2. Wrap in try/catch for errors
  3. Run a codemod/search for , function (err

Detailed fix by platform

Node.js

  1. const user = await User.findOne({ email }).exec();

How to diagnose

  1. Version — Mongoose 7+?
  2. Call sites — Callback style?
  3. Refactor — async/await?

🔧 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):

CastError: Cast to Date/Number/Boolean failed — Mongoose: CastError: Cast to date failed for value "abc" (type string) at path "createdAt" (MongoDB)CastError: Cast to Da…MissingSchemaError: Schema hasn't been registered for model — Mongoose: MissingSchemaError: Schema hasn't been registered for model "User". Use mongoose.model(name, schema) (MongoDB)MissingSchemaError: S…Mongoose ValidationError — ValidationError: User validation failed: email: Path `email` is required. (Node.js)Mongoose ValidationEr…Mongoose: strictQuery will be switched back to false — Mongoose: [MONGOOSE] DeprecationWarning: Mongoose: the strictQuery option will be switched back to false by default in Mongoose 7 (MongoDB)Mongoose: strictQuery…MongoParseError: options usenewurlparser / useunifiedtopology not supported — MongoParseError: option usenewurlparser is not supported (MongoDB)MongoParseError: opti…OverwriteModelError: Cannot overwrite model once compiled — Mongoose: OverwriteModelError: Cannot overwrite `User` model once compiled. (MongoDB)OverwriteModelError: …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 (MongoDB)StrictPopulateError: …VersionError: No matching document found for id — Mongoose: VersionError: No matching document found for id "5f..." version 3 modifiedPaths "items" (MongoDB)VersionError: No matc…Mongoose:…

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.