FA-26371 / HTTP ranges / Open access
Full-response fallback removes partial Content-Range metadata · case 01
Full-response fallback removes partial Content-Range metadata.
ROOT CAUSE
The if-range-fallback-clears-range-headers decision uses return [206,part,range_header] if validator_ok else [200,full,range_header].
VERIFIED REPAIR
Apply the bounded decision exactly: return [206,part,range_header] if validator_ok else [200,full,None]
Unsuccessful approach: The partial repair uses return [206,part,range_header] if validator_ok else [200,full,""], which still violates the stated contract.
Case contract
Return [status,body,Content-Range-or-null]. Failed If-Range sends the full body and no Content-Range.
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(validator_ok, full, part, range_header):
return [206,part,range_header] if validator_ok else [200,full,range_header]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('if-range-fallback-clears-range-headers fixture 0', solve(False,"f"*N,"p","bytes 0-0/9"), [200,"f"*N,None])
check('if-range-fallback-clears-range-headers fixture 1', solve(False,"","","bytes */0"), [200,"",None])
check('if-range-fallback-clears-range-headers fixture 2', solve(True,"fff","p","bytes 0-0/3"), [206,"p","bytes 0-0/3"])
check('if-range-fallback-clears-range-headers fixture 3', solve(True,"f"*N,"p"*N,"r"), [206,"p"*N,"r"])
check('if-range-fallback-clears-range-headers fixture 4', solve(False,"abc","b","r"), [200,"abc",None])
check('if-range-fallback-clears-range-headers fixture 5', solve(True,"f","","r"), [206,"","r"])
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| if-range-fallback-clears-range-headers fixture 0 | [200, 'f', 'bytes 0-0/9'] | [200, 'f', None] | Failed |
| if-range-fallback-clears-range-headers fixture 1 | [200, '', 'bytes */0'] | [200, '', None] | Failed |
| if-range-fallback-clears-range-headers fixture 2 | [206, 'p', 'bytes 0-0/3'] | [206, 'p', 'bytes 0-0/3'] | Passed |
| if-range-fallback-clears-range-headers fixture 3 | [206, 'p', 'r'] | [206, 'p', 'r'] | Passed |
| if-range-fallback-clears-range-headers fixture 4 | [200, 'abc', 'r'] | [200, 'abc', None] | Failed |
| if-range-fallback-clears-range-headers fixture 5 | [206, '', 'r'] | [206, '', 'r'] | Passed |
SHA-256 / f57357a15b12d2f9b992ffd87f86196410cfa7a1bf57cba67581f33181e97425
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(validator_ok, full, part, range_header):
return [206,part,range_header] if validator_ok else [200,full,""]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('if-range-fallback-clears-range-headers fixture 0', solve(False,"f"*N,"p","bytes 0-0/9"), [200,"f"*N,None])
check('if-range-fallback-clears-range-headers fixture 1', solve(False,"","","bytes */0"), [200,"",None])
check('if-range-fallback-clears-range-headers fixture 2', solve(True,"fff","p","bytes 0-0/3"), [206,"p","bytes 0-0/3"])
check('if-range-fallback-clears-range-headers fixture 3', solve(True,"f"*N,"p"*N,"r"), [206,"p"*N,"r"])
check('if-range-fallback-clears-range-headers fixture 4', solve(False,"abc","b","r"), [200,"abc",None])
check('if-range-fallback-clears-range-headers fixture 5', solve(True,"f","","r"), [206,"","r"])
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| if-range-fallback-clears-range-headers fixture 0 | [200, 'f', ''] | [200, 'f', None] | Failed |
| if-range-fallback-clears-range-headers fixture 1 | [200, '', ''] | [200, '', None] | Failed |
| if-range-fallback-clears-range-headers fixture 2 | [206, 'p', 'bytes 0-0/3'] | [206, 'p', 'bytes 0-0/3'] | Passed |
| if-range-fallback-clears-range-headers fixture 3 | [206, 'p', 'r'] | [206, 'p', 'r'] | Passed |
| if-range-fallback-clears-range-headers fixture 4 | [200, 'abc', ''] | [200, 'abc', None] | Failed |
| if-range-fallback-clears-range-headers fixture 5 | [206, '', 'r'] | [206, '', 'r'] | Passed |
SHA-256 / f20bab9e1c47ec38d789ff42f8653ab3563667d10996ca524609b2f3983753d3
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(validator_ok, full, part, range_header):
return [206,part,range_header] if validator_ok else [200,full,None]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('if-range-fallback-clears-range-headers fixture 0', solve(False,"f"*N,"p","bytes 0-0/9"), [200,"f"*N,None])
check('if-range-fallback-clears-range-headers fixture 1', solve(False,"","","bytes */0"), [200,"",None])
check('if-range-fallback-clears-range-headers fixture 2', solve(True,"fff","p","bytes 0-0/3"), [206,"p","bytes 0-0/3"])
check('if-range-fallback-clears-range-headers fixture 3', solve(True,"f"*N,"p"*N,"r"), [206,"p"*N,"r"])
check('if-range-fallback-clears-range-headers fixture 4', solve(False,"abc","b","r"), [200,"abc",None])
check('if-range-fallback-clears-range-headers fixture 5', solve(True,"f","","r"), [206,"","r"])
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| if-range-fallback-clears-range-headers fixture 0 | [200, 'f', None] | [200, 'f', None] | Passed |
| if-range-fallback-clears-range-headers fixture 1 | [200, '', None] | [200, '', None] | Passed |
| if-range-fallback-clears-range-headers fixture 2 | [206, 'p', 'bytes 0-0/3'] | [206, 'p', 'bytes 0-0/3'] | Passed |
| if-range-fallback-clears-range-headers fixture 3 | [206, 'p', 'r'] | [206, 'p', 'r'] | Passed |
| if-range-fallback-clears-range-headers fixture 4 | [200, 'abc', None] | [200, 'abc', None] | Passed |
| if-range-fallback-clears-range-headers fixture 5 | [206, '', 'r'] | [206, '', 'r'] | Passed |
SHA-256 / de93aced6baccff9e82aff307fdb1c1bd1207bc3cf9eb192ee83345113e5e5dd
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.477293+00:00.
Case digest / 8f3a9ab474c59d2cf3ed0a1fd7c1cad283751bf82f515123476f59500e1bbcde