- Shipped
- September 10, 2026 at 8:37 PM UTC
- Author
- Kamo
- Commit
- 721071b
A losing claim on an unprocessed row always answered 500, so an event whose first attempt failed (a unique-constraint race inside the invoice.created/finalized/paid trio, a transient DB error, a failure at commit) could never run again: every redelivery lost the claim for the whole three-day retry window. **************** reports an unprocessed row whose attempt recorded a failure, or has been unfinished for over two minutes, and that redelivery now dispatches it. A row still inside the window keeps answering 500. stripe-java 28.2.0 only deserializes bodies from its pinned release train (2024-12-18.acacia). The live endpoint renders 2026-03-25.dahlia, so each event it delivers deserializes to no object and would be closed out as processed with nothing done. A handled event type with no deserializable object now throws (500, processing_error recorded); unhandled types are still closed out. HANDLED_EVENT_TYPES names the dispatched types, pinned to the switch's case labels by a test, as the enabled_events for the Stripe endpoint.