fix: isolate Web Push device failures (Closes #655)
CI / lint (pull_request) Successful in 1m27s
CI / build-release (pull_request) Successful in 6s
CI / release-candidate (pull_request) Has been skipped

This commit is contained in:
timmy committed 2026-08-12 13:53:38 +00:00
1 parent ea3194cdca
commit 32394fcd8f
2 files changed
+80 -1

No files matched your search

+10 -1
View File
@@ -219,8 +219,17 @@ async def dispatch_unread_updates(
count += 1
return count
async def dispatch_device_safely(delivery) -> int:
try:
return await dispatch_device(delivery)
except Exception:
# Device-specific validation, persistence, or provider failures
# must not cancel healthy siblings. Leave any uncheckpointed
# revisions unseen so a later poll can retry them.
return 0
counts = await asyncio.gather(
*(dispatch_device(delivery) for delivery in deliveries)
*(dispatch_device_safely(delivery) for delivery in deliveries)
)
return sum(counts)
finally: