Skip to content

An expired claim is recovery

Resolving from anywhereDashboardHTTPSDKMCPassigned_untilavailablereleaseExpired

When a holder walks away, the window lapses and the row is claimable again with no job, no status change and no lost input.

The situation

A reviewer claims a row, then gets pulled into a meeting. The row should not sit locked behind them for the afternoon, and nobody should have to notice and free it.

The recipe

What available means
assigned_to IS NULL OR assigned_until IS NULL OR assigned_until <= NOW()
Optional housekeeping
curl -X POST https://lt.acme.dev/api/escalations/release-expired -H "Authorization: Bearer $TOKEN"
# { "released": 3 }

The available queue evaluates the window at query time, so a lapsed claim drops out of “held” the instant it expires. release-expired only clears the stale assignment fields for tidiness.

The guarantee

Expiry changes nothing on the row: it stays pending and becomes claimable by the next person. The lapsed holder’s own resolve answers 409 until they re-claim, so stale work never lands. In the dashboard a Claim Expiring dialog offers an extension 90 seconds before the window ends, and typed form input survives so a re-claim picks up where it left off. See Dashboard.