diff --git a/features/conversation-assistant/ml-service/src/main.py b/features/conversation-assistant/ml-service/src/main.py index 61fe376e9..7de78a7df 100755 --- a/features/conversation-assistant/ml-service/src/main.py +++ b/features/conversation-assistant/ml-service/src/main.py @@ -348,8 +348,15 @@ async def create_app(): ), ) -# Initialize app at module level for uvicorn string loading -app = asyncio.run(create_app()) +# Initialize app at module level for uvicorn string loading. +# asyncio.run() fails when uvicorn already has a running event loop (uvloop), +# so fall back to a temporary loop for synchronous module-level initialization. +try: + app = asyncio.run(create_app()) +except RuntimeError: + _loop = asyncio.new_event_loop() + app = _loop.run_until_complete(create_app()) + _loop.close() # Apply logging route class to all routes app.router.route_class = LoggingRoute