Moved catch and final then block to outermost promise