Có thể chỉ là cái này.
Tôi không nghĩ bạn cần .populate('latestPost') là .populate() tiếp theo của bạn nên chú ý đến việc điền latestPost . Có thể điều đó đang can thiệp vào điều tiếp theo.
User.findOne({ _id: req.user.id }).populate({
path: 'latestPost',
model: 'Post',
populate: {
path: 'author',
model: 'User'
}
}).exec(function (err, user) {
});