Let a manager accept the web chat they were just paged about

FixMediaService
Shipped
September 6, 2026 at 1:08 AM UTC
Author
Kamo
Commit
40e9729

Clicking Accept on a web-chat request closed the popup and reopened it a moment later, unassigned and with no chat window — the same card, over and over, with nothing in the logs. A widget visitor has no Member, so their ticket names the org's SYSTEM member as requestor purely to have a row to point at, and that member is normally the very person working the queue. 3729f10 taught the paging predicate to see past that (CLAIMABLE_IDS_HQL keys off the PublicChatVisitor row) but left isClaimableByManager restating the old rule, so a MANAGE_SUPPORT holder was offered the ticket by one predicate and refused it by the other. The refusal is an IllegalArgumentException -> 400, which the popup handles by closing and refetching: the offer is still there, so the card comes straight back. No branch on either side logs, which is why three hours of pod output said nothing. The rule now lives once, next to isClaimableStatus and exposed for the same stated reason — that list was moved there precisely so it could not drift between the paging predicate and the manager claim path. This one drifted anyway, in the other direction. Verified against the live row: harmony-home-loans ticket 7724edbd is PRE_TICKET, unassigned, requestor 1200096283020347687 — the member subscribed to **************** and holding MANAGE_SUPPORT — with one PublicChatVisitor row behind its session.

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