Prefect test server fails to start: ```E ...
# ask-community
n
Prefect test server fails to start:
Copy code
E                       RuntimeError: Timed out while attempting to connect to ephemeral Prefect API server.
Copy code
@pytest.fixture(autouse=True, scope="session")
    def prefect_test_fixture():
>       with prefect_test_harness():

madefor/workflows/conftest.py:18: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
/usr/local/lib/python3.12/site-packages/prefect/testing/utilities.py:157: in prefect_test_harness
    test_server.start(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <prefect.server.api.server.SubprocessASGIServer object at 0x7f10eb8bb350>
timeout = 30

    def start(self, timeout: Optional[int] = None):
        """
        Start the server in a separate process. Safe to call multiple times; only starts
        the server once.
    
        Args:
            timeout: The maximum time to wait for the server to start
        """
        if not self.running:
            if self.port is None:
                self.port = self.find_available_port()
            assert self.port is not None, "Port must be provided or available"
            <http://subprocess_server_logger.info|subprocess_server_logger.info>(f"Starting server on {self.address}")
            try:
                self.running = True
                self.server_process = self._run_uvicorn_command()
                atexit.register(self.stop)
                with httpx.Client() as client:
                    response = None
                    elapsed_time = 0
                    max_wait_time = (
                        timeout
                        or PREFECT_SERVER_EPHEMERAL_STARTUP_TIMEOUT_SECONDS.value()
                    )
                    while elapsed_time < max_wait_time:
                        if self.server_process.poll() == 3:
                            self.port = self.find_available_port()
                            self.server_process = self._run_uvicorn_command()
                            continue
                        try:
                            response = client.get(f"{self.api_url}/health")
                        except httpx.ConnectError:
                            pass
                        else:
                            if response.status_code == 200:
                                break
                        time.sleep(0.1)
                        elapsed_time += 0.1
                    if response:
                        response.raise_for_status()
                    if not response:
                        error_message = "Timed out while attempting to connect to ephemeral Prefect API server."
                        if self.server_process.poll() is not None:
                            error_message += f" Ephemeral server process exited with code {self.server_process.returncode}."
                        if self.server_process.stdout:
                            error_message += (
                                f" stdout: {self.server_process.stdout.read()}"
                            )
                        if self.server_process.stderr:
                            error_message += (
                                f" stderr: {self.server_process.stderr.read()}"
                            )
>                       raise RuntimeError(error_message)
E                       RuntimeError: Timed out while attempting to connect to ephemeral Prefect API server.

/usr/local/lib/python3.12/site-packages/prefect/server/api/server.py:818: RuntimeError
any idea why this could be happening and how to debug?