Return 409 on every lost claim race, add manager claim path

FixMediaService
Shipped
August 7, 2026 at 7:07 AM UTC
Author
Kamo
Commit
fa63e1a

Round 1 review fixes for the accept-popup claim endpoint: - an ordinary lost race (loser's isClaimableBy already false post-commit) now raises TicketAlreadyClaimedException (409) instead of 400 - a double-tap by the ticket's own winner is idempotent (200), not an error - a truly simultaneous DB-level conflict (ConcurrencyFailureException) is caught at the controller and also surfaces as 409 - MANAGE_SUPPORT holders can claim without department/strategy filters, per spec D7, via a new isManager path that never loosens SupportQueueService's paging predicate - added controller-level MockMvc tests asserting the exact wire contract (200/409/403/401 and the literal ALREADY_CLAIMED body)

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing