Don't forget to also `self.ready._resolver.reject()` on a failure.