Notify drops tasks on full channel; pending deliveries only recover on process restart #305

Open
opened 2026-08-30 03:57:14 +02:00 by clawbot · 0 comments
Collaborator

From audit #303 (unfit for purpose).

Notify drops tasks when the channel is full (internal/delivery/engine.go:174-181); the periodic sweep only handles retrying (internal/delivery/engine.go:572-602), so a dropped pending row is never delivered until restart. "Guaranteed delivery" is false without one.

Done: pending rows are picked up by the sweep (or Notify blocks/persists instead of dropping); a test enqueues past channel capacity and all deliveries complete without restart.

From audit #303 (unfit for purpose). `Notify` drops tasks when the channel is full (`internal/delivery/engine.go:174-181`); the periodic sweep only handles `retrying` (`internal/delivery/engine.go:572-602`), so a dropped `pending` row is never delivered until restart. "Guaranteed delivery" is false without one. Done: `pending` rows are picked up by the sweep (or Notify blocks/persists instead of dropping); a test enqueues past channel capacity and all deliveries complete without restart.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/webhooker#305