diff --git a/src/monitor_utils/runner.py b/src/monitor_utils/runner.py index 645601d..bbc34d9 100644 --- a/src/monitor_utils/runner.py +++ b/src/monitor_utils/runner.py @@ -556,7 +556,12 @@ async def retry_failed_pages( def first_error(group_exc: BaseExceptionGroup) -> BaseException: - """Return the first leaf exception of a possibly nested exception group.""" + """Return a leaf exception of a possibly nested group, preferring an + unexpected one so a real bug is never masked by a routine network error.""" + _, unexpected = group_exc.split(EXPECTED_TASK_ERRORS) + if unexpected is not None: + group_exc = unexpected + error = group_exc.exceptions[0] while isinstance(error, BaseExceptionGroup): error = error.exceptions[0]