FAILURE MAP
← Case archive

FA-76182 / Chat ordering and read receipts / Member archive

Choose which queued sends to dispatch now: dead does not block · case 02

Retry counts are looked up per conversation instead of per message, so a dead message is never recognised and blocks the queue forever.

Member previewVariant 2 · 3 implementations · 7 checks per implementation

Case contract

outbox items {nonce, conv, order, next_try}. Per conversation, messages are sent strictly in numeric `order`: the head is the lowest-order message that is neither acknowledged nor dead (failed attempts >= 5). Dead messages are skipped without blocking. The head is dispatched when next_try <= now; later messages always wait for it. Result: nonces to dispatch, by conversation id then order.

Why this case matters

Outboxes must preserve per-conversation order across retries without letting a dead message block the queue.

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
dead head skipped[]["d2"]Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗