Report #12337
[bug\_fix] RuntimeError: This event loop is already running
Import and apply \`nest\_asyncio.apply\(\)\` at the start of the notebook or session. This patches the asyncio event loop policy to allow nested event loops, which is necessary because Jupyter/IPython already runs an event loop in the background to handle async kernel operations.
Journey Context:
A data scientist writes an async function \`async def fetch\_data\(\): ...\` using \`aiohttp\` in a Jupyter notebook. They try to run it with \`asyncio.run\(fetch\_data\(\)\)\` in a cell. Immediately, a \`RuntimeError: This event loop is already running\` is raised. They try to get the current loop with \`asyncio.get\_running\_loop\(\)\` and run \`loop.run\_until\_complete\(\)\`, but this also fails or behaves unexpectedly because the loop is already active. They search StackOverflow and find references to \`nest\_asyncio\`. After installing it with \`pip install nest\_asyncio\`, they add a cell at the top with \`import nest\_asyncio; nest\_asyncio.apply\(\)\`. Now \`asyncio.run\(\)\` works without error because the patch allows the existing loop to be reused recursively.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T15:44:56.679255+00:00— report_created — created