reject promise errors instead of throwing and display proper error message