def wait_for_application_convergence(self, timeout: int = 120) -> None:
        """
        Wait for Vespa application to converge, checking every second.

        Args:
            timeout: Timeout in seconds
        """
        start_time = time.time()
        while time.time() - start_time < timeout:
            try:
                if self.get_application_has_converged():
                    return
                else:
                    logger.debug('Waiting for Vespa application to converge')
                    time.sleep(1)
            # TODO Find out what exceptions is raised here
            except (httpx.TimeoutException, httpcore.TimeoutException):
                logger.error("Marqo timed out waiting for Vespa application to converge. Will retry.")

        raise VespaError(f"Vespa application did not converge within {timeout} seconds. "
                         f"The convergence status is {self._get_convergence_status()}")

        Wait for Vespa application to converge, checking every second.

        Args:
            timeout: Timeout in seconds
        
src/marqo/vespa/vespa_client.py