FAILURE MAP
← Case archive

FA-24821 / Client state / Open access

Continuous client edits postpone a debounced effect forever · case 01

Continuous client edits postpone a debounced effect forever.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The faulty implementation violates A debounced effect deadline is the earlier of latest edit plus quiet delay and first edit plus maximum wait; execution is eligible at the deadline, including zero durations.

VERIFIED REPAIR

A debounced effect deadline is the earlier of latest edit plus quiet delay and first edit plus maximum wait; execution is eligible at the deadline, including zero durations.

Unsuccessful approach: The partial repair still violates at least one explicit regression oracle.

Case contract

A debounced effect deadline is the earlier of latest edit plus quiet delay and first edit plus maximum wait; execution is eligible at the deadline, including zero durations.

Why this case matters

A bounded offline client-state transition with explicit lifecycle inputs.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(first, latest, delay, maximum, now):
    deadline=latest+delay
    return deadline,now>=deadline
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('max wait caps chatter', solve(0,N+5,3,5,5), (5,True))
check('quiet delay first', solve(0,1,2,10,2), (3,False))
check('inclusive deadline', solve(0,1,2,10,3), (3,True))
check('zero delay', solve(1,2,0,10,2), (2,True))
check('zero max wait', solve(3,3,2,0,3), (3,True))
check('shifted origin', solve(N,N+1,2,10,N+2), (N+3,False))
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
max wait caps chatter[9, False][5, True]Failed
quiet delay first[3, False][3, False]Passed
inclusive deadline[3, True][3, True]Passed
zero delay[2, True][2, True]Passed
zero max wait[5, False][3, True]Failed
shifted origin[4, False][4, False]Passed

SHA-256 / e1ea15a66c2ed7e7fcfea858691b4f0809ddd8e2d3d29e96f31b97b0e8b8c700

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(first, latest, delay, maximum, now):
    deadline=first+maximum
    return deadline,now>deadline
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('max wait caps chatter', solve(0,N+5,3,5,5), (5,True))
check('quiet delay first', solve(0,1,2,10,2), (3,False))
check('inclusive deadline', solve(0,1,2,10,3), (3,True))
check('zero delay', solve(1,2,0,10,2), (2,True))
check('zero max wait', solve(3,3,2,0,3), (3,True))
check('shifted origin', solve(N,N+1,2,10,N+2), (N+3,False))
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
max wait caps chatter[5, False][5, True]Failed
quiet delay first[10, False][3, False]Failed
inclusive deadline[10, False][3, True]Failed
zero delay[11, False][2, True]Failed
zero max wait[3, False][3, True]Failed
shifted origin[11, False][4, False]Failed

SHA-256 / b1e76557443ef8272d85b631ca3c073da494eef1042816126b9119c74e284832

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(first, latest, delay, maximum, now):
    deadline=min(latest+delay,first+maximum)
    return deadline,now>=deadline
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('max wait caps chatter', solve(0,N+5,3,5,5), (5,True))
check('quiet delay first', solve(0,1,2,10,2), (3,False))
check('inclusive deadline', solve(0,1,2,10,3), (3,True))
check('zero delay', solve(1,2,0,10,2), (2,True))
check('zero max wait', solve(3,3,2,0,3), (3,True))
check('shifted origin', solve(N,N+1,2,10,N+2), (N+3,False))
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
max wait caps chatter[5, True][5, True]Passed
quiet delay first[3, False][3, False]Passed
inclusive deadline[3, True][3, True]Passed
zero delay[2, True][2, True]Passed
zero max wait[3, True][3, True]Passed
shifted origin[4, False][4, False]Passed

SHA-256 / 52b7fbd6434617677329c796edf5803d967ad7eb3fa25ab647bf06fa8f0fb54e

Verification & scope

This models the stated application policy only; no browser or framework conformance is claimed. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:41:01.037207+00:00.

Case digest / 1fb62146a9517797787f4887775da82a5292ff1f61e1ec8fa9f86ecb8acb6ae9