mongoose: bugs during update from 4.7.2 to 4.7.3
Hello,
Yesterday after update the mongoose to 4.7.3 i hava some trouble with “all” tests in my application All tests returns me: Validation Errors, and Cast errors, TypeError: Cannot read property ‘remove’ of undefined;
Sample error:
CastError: Cast to ObjectId failed for value "586b672be11a4670c4eb3f66" at path "_id" for model "User"
at MongooseError.CastError (/common/node_modules/mongoose/lib/error/cast.js:26:11)
at ObjectId.cast (/common/node_modules/mongoose/lib/schema/objectid.js:147:13)
at ObjectId.castForQuery (/common/node_modules/mongoose/lib/schema/objectid.js:187:15)
at cast (/common/node_modules/mongoose/lib/cast.js:229:32)
at Query.cast (/common/node_modules/mongoose/lib/query.js:2752:12)
at Query.findOne (/common/node_modules/mongoose/lib/query.js:1353:10)
at /common/node_modules/mongoose/lib/query.js:2310:21
at Query.exec (/common/node_modules/mongoose/lib/query.js:2304:17)
at Query.then (/common/node_modules/mongoose/lib/query.js:2351:15)
at next (/common/node_modules/co/index.js:100:51)
at onFulfilled (/common/node_modules/co/index.js:69:7)
at /common/node_modules/co/index.js:54:5
at co (/common/node_modules/co/index.js:50:10)
at Test.<anonymous> (src/routes/me.spec.js:169:11)
at Test.assert (/common/node_modules/supertest/lib/test.js:156:6)
at Server.assert (/common/node_modules/supertest/lib/test.js:127:12)
at emitCloseNT (net.js:1537:8)
Let me know what more informations you know.
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 8
- Comments: 22 (1 by maintainers)
Hi @vkarpov15 We have performed some tests locally and have seen that in this line https://github.com/Automattic/mongoose/blob/master/lib/schema/objectid.js#L147 …the error that is being catched and transformed into a CastError is this:
We have tried tracking this through the dependencies, and if we got this right, this goes all the way down to the
bson
package which happens to have been updated 19h ago (https://www.npmjs.com/package/bson) and seems to involve some validation changes in the ObjectId type (https://github.com/mongodb/js-bson/commit/e136ac084a8a3db135a9e36efa157f517b5336e4)… bson is listed in mongoose’s package.json with
~1.0.1
and the latest version is1.0.2
.In my local environment, where I can reproduce this,
bson
has been updated to the 1.0.2 as a dependency of mongodb-core.Found a temporary solution:
We also have this problem:
which is similar to this one https://travis-ci.org/Automattic/mongoose/jobs/188445650 :
#same issue doesn’t recognize valid _id’s
@ifyour temporary version drop to mongoose 4.7.2, fixes the issue
Looks like there’s already a PR in the
bson
module that fixes the root of this problem https://github.com/mongodb/js-bson/issues/204bson problem was fixed with v1.0.3
https://github.com/Automattic/mongoose/issues/4864 https://github.com/mongodb/js-bson/commit/35f5264446fb74e475ecf25f94ce7b177b5b35fd
Re-intstall all deps, verify that bson is v1.0.3 and see if it works now.