core: promise making rethrowing