Оу, это печально известная
ошибка на миллиард долларов, это если что не про конкретно вашу ошибку, а почему так можно делать.
Здесь вы ищете роль
const userRole = await Role.findOne({ role: 'user' });
Если её нет, то соответвенно в userRole будет null, но далее вы без проверки обращаетесь
userRole.role
const user = new User({ username, hashPass, roles: [userRole.role] });
Советую прямо сейчас начать использовать TypeScript, начните с простого пусть это будет проверка типов и отслеживание таких ситуации с возможным null.
Это сэкономит кучу времени и кучу денег, значительно снизит непонятные ошибки на продакшене, которые сложно отловить.