Webhooks took the credit up front and never gave it back when they died
Four different code paths could give up on a paid webhook delivery, and every one of them marked it dead without refunding the credit. I routed them all through one locked settlement that refunds exactly once, fenced writes by attempt number, and made account deletion count its refunds before it commits.
Read more