promises are now regenerated on failure, to cause subsequent route changes to work properly