FAILURE MAP
← Case archive

FA-26346 / HTTP ranges / Open access

A matching cache validator suppresses range unsatisfiability · case 01

A matching cache validator suppresses range unsatisfiability.

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

ROOT CAUSE

The not-modified-before-unsatisfied decision uses return [416, ""] if not satisfiable else ([304,""] if fresh else [206,body]).

VERIFIED REPAIR

Apply the bounded decision exactly: return [304, ""] if fresh else ([206,body] if satisfiable else [416,""])

Unsuccessful approach: The partial repair uses return [304, ""] if fresh and satisfiable else ([206,body] if satisfiable else [416,""]), which still violates the stated contract.

Case contract

A matching GET cache validator produces [304,empty]; only stale requests evaluate ranges, yielding 206 or 416.

Why this case matters

Range responses combine representation identity, conditional requests, framing, and partial-object state.

1 / The failure

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

N = 1
observations = []
def solve(fresh, satisfiable, body):
    return [416, ""] if not satisfiable else ([304,""] if fresh else [206,body])
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('not-modified-before-unsatisfied fixture 0', solve(True,False,"x"*N), [304,""])
check('not-modified-before-unsatisfied fixture 1', solve(True,True,"x"*N), [304,""])
check('not-modified-before-unsatisfied fixture 2', solve(False,False,"x"*N), [416,""])
check('not-modified-before-unsatisfied fixture 3', solve(False,True,"x"*N), [206,"x"*N])
check('not-modified-before-unsatisfied fixture 4', solve(True,False,""), [304,""])
check('not-modified-before-unsatisfied fixture 5', solve(False,True,""), [206,""])
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
not-modified-before-unsatisfied fixture 0[416, ''][304, '']Failed
not-modified-before-unsatisfied fixture 1[304, ''][304, '']Passed
not-modified-before-unsatisfied fixture 2[416, ''][416, '']Passed
not-modified-before-unsatisfied fixture 3[206, 'x'][206, 'x']Passed
not-modified-before-unsatisfied fixture 4[416, ''][304, '']Failed
not-modified-before-unsatisfied fixture 5[206, ''][206, '']Passed

SHA-256 / 04c6c364116b1e2fea4e08ce33fba61cb5d2615201c999508193987d09cae30b

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(fresh, satisfiable, body):
    return [304, ""] if fresh and satisfiable else ([206,body] if satisfiable else [416,""])
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('not-modified-before-unsatisfied fixture 0', solve(True,False,"x"*N), [304,""])
check('not-modified-before-unsatisfied fixture 1', solve(True,True,"x"*N), [304,""])
check('not-modified-before-unsatisfied fixture 2', solve(False,False,"x"*N), [416,""])
check('not-modified-before-unsatisfied fixture 3', solve(False,True,"x"*N), [206,"x"*N])
check('not-modified-before-unsatisfied fixture 4', solve(True,False,""), [304,""])
check('not-modified-before-unsatisfied fixture 5', solve(False,True,""), [206,""])
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
not-modified-before-unsatisfied fixture 0[416, ''][304, '']Failed
not-modified-before-unsatisfied fixture 1[304, ''][304, '']Passed
not-modified-before-unsatisfied fixture 2[416, ''][416, '']Passed
not-modified-before-unsatisfied fixture 3[206, 'x'][206, 'x']Passed
not-modified-before-unsatisfied fixture 4[416, ''][304, '']Failed
not-modified-before-unsatisfied fixture 5[206, ''][206, '']Passed

SHA-256 / c54d033981cd874c41ca9a7e5474ea7c3ee43d6f5edbd85cf7f8d98fa3b41e3b

3 / The verified repair

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

N = 1
observations = []
def solve(fresh, satisfiable, body):
    return [304, ""] if fresh else ([206,body] if satisfiable else [416,""])
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('not-modified-before-unsatisfied fixture 0', solve(True,False,"x"*N), [304,""])
check('not-modified-before-unsatisfied fixture 1', solve(True,True,"x"*N), [304,""])
check('not-modified-before-unsatisfied fixture 2', solve(False,False,"x"*N), [416,""])
check('not-modified-before-unsatisfied fixture 3', solve(False,True,"x"*N), [206,"x"*N])
check('not-modified-before-unsatisfied fixture 4', solve(True,False,""), [304,""])
check('not-modified-before-unsatisfied fixture 5', solve(False,True,""), [206,""])
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
not-modified-before-unsatisfied fixture 0[304, ''][304, '']Passed
not-modified-before-unsatisfied fixture 1[304, ''][304, '']Passed
not-modified-before-unsatisfied fixture 2[416, ''][416, '']Passed
not-modified-before-unsatisfied fixture 3[206, 'x'][206, 'x']Passed
not-modified-before-unsatisfied fixture 4[304, ''][304, '']Passed
not-modified-before-unsatisfied fixture 5[206, ''][206, '']Passed

SHA-256 / b65442e72ead69ad5293182178dee2bfa944a0f1ae7daad97f3b79d9054837bc

Verification & scope

Deterministic simplified range service, with stipulated local policies and already parsed trusted inputs; not a complete HTTP implementation. 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:15.155234+00:00.

Case digest / 667ebcf89d20ca13291d578095d4718a88d320d91051d788db1d9b88703e61fa