diff --git a/src/crawlee/statistics/_error_snapshotter.py b/src/crawlee/statistics/_error_snapshotter.py index 6bee1b6c60..9890ab9bf9 100644 --- a/src/crawlee/statistics/_error_snapshotter.py +++ b/src/crawlee/statistics/_error_snapshotter.py @@ -44,19 +44,13 @@ async def capture_snapshot( if snapshot := await context.get_snapshot(): kvs = await KeyValueStore.open(name=self._kvs_name) snapshot_base_name = self._get_snapshot_base_name(error_message, file_and_line) - snapshot_save_tasks = list[asyncio.Task]() - if snapshot.html: - snapshot_save_tasks.append( - asyncio.create_task(self._save_html(kvs, snapshot.html, base_name=snapshot_base_name)) - ) + async with asyncio.TaskGroup() as tg: + if snapshot.html: + tg.create_task(self._save_html(kvs, snapshot.html, base_name=snapshot_base_name)) - if snapshot.screenshot: - snapshot_save_tasks.append( - asyncio.create_task(self._save_screenshot(kvs, snapshot.screenshot, base_name=snapshot_base_name)) - ) - - await asyncio.gather(*snapshot_save_tasks) + if snapshot.screenshot: + tg.create_task(self._save_screenshot(kvs, snapshot.screenshot, base_name=snapshot_base_name)) async def _save_html(self, kvs: KeyValueStore, html: str, base_name: str) -> None: file_name = f'{base_name}.html'