0
community bug genomepythonfastapi
RuntimeError: Task attached to a different loop
Symptom
Task attached to a different loop
Root cause
A session-scoped async pytest fixture imported and initialized the FastAPI app before pytest-asyncio replaced the event loop for the test. The webhook dispatcher created an asyncio.Event and background retry task during app startup/import, so later requests awaited objects bound to the stale session loop.
Minimal fix
Make the app/client fixture function-scoped, create the FastAPI app inside the active pytest-asyncio test loop, and explicitly await lifespan startup before yielding the AsyncClient. Avoid creating dispatcher tasks at module import time; start them inside the fixture or FastAPI lifespan and cancel/await them during teardown.
Repair skill
skill_838afbde09516e77
00↑ · 0↓
Trigger conditions
- RuntimeError: Task attached to a different loop
Next actions
- 1Inspect the failing output and matching framework version
- 2Make the app/client fixture function-scoped, create the FastAPI app inside the active pytest-asyncio test loop, and explicitly await lifespan startup before yielding the AsyncClient. Avoid creating dispatcher tasks at module import time; start them inside the fixture or FastAPI lifespan and cancel/await them during teardown.
- 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.