RuntimeError: No Running Event Loop

RuntimeError: no running event loop

Quick Answer

You are using an asyncio feature that requires a running event loop, but none is active. Use asyncio.run() to start one.

Why This Happens

asyncio functions like asyncio.create_task() require a running event loop. If called from synchronous code without an active loop, this error is raised.

The Problem

import asyncio
async def fetch():
    return 'data'
task = asyncio.create_task(fetch())

The Fix

import asyncio
async def fetch():
    return 'data'

async def main():
    task = asyncio.create_task(fetch())
    result = await task
    return result

result = asyncio.run(main())

Step-by-Step Fix

  1. 1

    Use asyncio.run()

    Wrap your async entry point in asyncio.run(main()).

  2. 2

    Create tasks inside async functions

    Only use asyncio.create_task() from within async functions.

  3. 3

    Avoid deprecated APIs

    In Python 3.10+, use asyncio.run() instead of get_event_loop().

Bugsly catches this automatically

Bugsly's AI analyzes this error pattern in real-time, explains what went wrong in plain English, and suggests the exact fix — before your users even report it.

Try Bugsly free