run_translation was def (sync FastAPI handler runs in thread pool with no event loop), but its body calls asyncio.create_task(_background_execute()) which requires a running event loop. Changed to async def so FastAPI runs it on the event loop directly. Error: 'Run failed: no running event loop'