I think that when you're in an async function, returning a Promise.reject() ensures that the error isn't caught by a catch block within the same function, which could happen if you’re using multiple try/catch blocks. By early returning a promise reject you are sure that the error can be handled only by the calling function (or higher).