Я столкнулся с той же проблемой, следуя руководству Джонаса по node / express / mon goose. Возможно, в какой-то момент команда mon goose решила исключить свойство 'name' из объекта 'error' (это только моя догадка, а не факт). В любом случае, я решил эту проблему следующим образом: вместо проверки значения свойства name я проверил, начинается ли свойство stack объекта error со слов CastError. Если вы используете отладчик и проверите все свойства объекта error, вы заметите, что свойство stack начинается со слов CastError, когда mon goose не может использовать ID в URL для своих целей (очевидно, когда вы используете ID в контроллере в указанном c маршруте)
вкратце вместо
if(err.name === 'CastError').....
Я использовал
if(err.stack.startsWith('CastError')