Return rejected promise in fail case

This replace #6433 

Need to always return a promise

cc @jasonsanjose