CastError: Cast to ObjectId failed for value "x" (type string) at path "_id"
A value that isn’t a valid 24-hex-character ObjectId was used in an _id query.
Seen on:
Node.js
Meaning
Routes like /users/:id receive anything; strings like "undefined", "me" or route collisions (/users/new hitting /users/:id) fail casting.
Common causes
- Invalid id from the URL
- Route order: /users/new matched by /users/:id
- "undefined" string from the frontend
⚡ Quick fix
- Validate with mongoose.isValidObjectId(id) and return 400/404
- Register specific routes before parameter routes
Detailed fix by platform
Node.js
if (!mongoose.isValidObjectId(req.params.id)) return res.status(400).json({ error: 'invalid id' });
How to diagnose
- Value — Which value?
- Route — Which route matched?
🧠 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.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026