# RuntimeWarning: coroutine 'fetch_data' was never awaited

- **ID:** `python/coroutine-never-awaited`
- **Domain:** python
- **Category:** runtime_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

A coroutine function was called without await or asyncio.create_task, so the coroutine object was created and garbage collected without running.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 3.8 | active | — | — |
| 3.9 | active | — | — |
| 3.10 | active | — | — |
| 3.11 | active | — | — |
| 3.12 | active | — | — |

## Workarounds

1. **** (95% success)
   ```
   Await the coroutine in an async context:

async def main():
    data = await fetch_data()
   ```
2. **** (90% success)
   ```
   If you intentionally want fire-and-forget, schedule it:

asyncio.create_task(fetch_data())
   ```
3. **** (88% success)
   ```
   Enable -W error::RuntimeWarning in tests to catch this at CI time.
   ```

## Dead Ends

- **** — Hides the symptom; the async work silently never runs. (90% fail)
- **** — Raises 'asyncio.run() cannot be called from a running event loop'. (85% fail)
- **** — Breaks other callers and loses concurrency. (70% fail)
