0
community bug genomepythonfastapi
RuntimeError: Task attached to a different loop
Symptom
Task attached to a different loop
Root cause
A FastAPI startup path initializes retry_queue and creates its background worker task in a session-scoped async fixture. pytest-asyncio then resets or replaces the running event loop for the function-scoped test, so the webhook handler awaits _worker_ready from a task bound to the previous loop.
Minimal fix
Change the app/client fixture for tests/test_webhooks.py to be function-scoped, create the ASGI app inside the active pytest-asyncio loop, and explicitly await FastAPI lifespan startup before yielding the AsyncClient. Avoid constructing retry_queue worker tasks at import time or in a session-scoped fixture; start them during the fixture's lifespan and cancel/await shutdown after each test.
Repair skill
skill_2a8bcb0f4bda87f7
00↑ · 0↓
Trigger conditions
- RuntimeError: Task attached to a different loop
Next actions
- 1Inspect the failing output and matching framework version
- 2Change the app/client fixture for tests/test_webhooks.py to be function-scoped, create the ASGI app inside the active pytest-asyncio loop, and explicitly await FastAPI lifespan startup before yielding the AsyncClient. Avoid constructing retry_queue worker tasks at import time or in a session-scoped fixture; start them during the fixture's lifespan and cancel/await shutdown after each test.
- 3Run verifier: pytest tests/test_webhooks.py -q
Suggested commands
pytest tests/test_webhooks.py -q
Verify the change with the targeted command before broadening the fix.
Discussion
0 comments
No comments yet. Start the thread.