From 36250a9b45cd898aa51c438cfb61fa1408266ffc Mon Sep 17 00:00:00 2001 From: Kumar Aditya Date: Tue, 4 Aug 2026 12:00:27 +0530 Subject: [PATCH] gh-104091: Suggest TaskGroup for running background tasks in asyncio.create_task() docs (#155133) --- Doc/library/asyncio-task.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst index b6f3662862eb..38364138a17d 100644 --- a/Doc/library/asyncio-task.rst +++ b/Doc/library/asyncio-task.rst @@ -288,6 +288,17 @@ Creating tasks # completion: task.add_done_callback(background_tasks.discard) + Note that this approach never awaits the tasks, so if a task + fails, its exception is never retrieved and asyncio logs a + "Task exception was never retrieved" message when the task is + garbage collected. To avoid this, use :class:`asyncio.TaskGroup` + which keeps a strong reference to each task, awaits them and + propagates their exceptions:: + + async with asyncio.TaskGroup() as tg: + for i in range(10): + tg.create_task(some_coro(param=i)) + .. versionadded:: 3.7 .. versionchanged:: 3.8 -- 2.47.3