FAILURE MAP
← Case archive

FA-26776 / HTTP ranges / Open access

Saved byte positions cannot transfer across content encodings · case 01

Saved byte positions cannot transfer across content encodings.

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

ROOT CAUSE

The resume-coding-change-restart decision uses return prefix+body.

VERIFIED REPAIR

Apply the bounded decision exactly: return prefix+body if saved_coding==response_coding else None

Unsuccessful approach: The partial repair uses return prefix+body if response_coding=="identity" or response_coding==saved_coding else None, which still violates the stated contract.

Case contract

Equal representation codings permit concatenation; differing codings return None, including identity versus gzip.

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(saved_coding, response_coding, prefix, body):
    return prefix+body
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('resume-coding-change-restart fixture 0', solve("gzip","identity","a"*N,"b"), None)
check('resume-coding-change-restart fixture 1', solve("identity","gzip","a","b"), None)
check('resume-coding-change-restart fixture 2', solve("gzip","gzip","a"*N,"b"), "a"*N+"b")
check('resume-coding-change-restart fixture 3', solve("identity","identity","a","b"), "ab")
check('resume-coding-change-restart fixture 4', solve("br","gzip","a","b"), None)
check('resume-coding-change-restart fixture 5', solve("br","br","",""), "")
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
resume-coding-change-restart fixture 0abNoneFailed
resume-coding-change-restart fixture 1abNoneFailed
resume-coding-change-restart fixture 2ababPassed
resume-coding-change-restart fixture 3ababPassed
resume-coding-change-restart fixture 4abNoneFailed
resume-coding-change-restart fixture 5Passed

SHA-256 / 67fa10534b1407e1aa0787fefa701973dd648f1566836b22cb42434738857e71

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(saved_coding, response_coding, prefix, body):
    return prefix+body if response_coding=="identity" or response_coding==saved_coding else None
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('resume-coding-change-restart fixture 0', solve("gzip","identity","a"*N,"b"), None)
check('resume-coding-change-restart fixture 1', solve("identity","gzip","a","b"), None)
check('resume-coding-change-restart fixture 2', solve("gzip","gzip","a"*N,"b"), "a"*N+"b")
check('resume-coding-change-restart fixture 3', solve("identity","identity","a","b"), "ab")
check('resume-coding-change-restart fixture 4', solve("br","gzip","a","b"), None)
check('resume-coding-change-restart fixture 5', solve("br","br","",""), "")
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
resume-coding-change-restart fixture 0abNoneFailed
resume-coding-change-restart fixture 1NoneNonePassed
resume-coding-change-restart fixture 2ababPassed
resume-coding-change-restart fixture 3ababPassed
resume-coding-change-restart fixture 4NoneNonePassed
resume-coding-change-restart fixture 5Passed

SHA-256 / 71ecd5da14e531f19c8bdea260ebb06e5a700c6c1d0c022f372747d5b416b0f8

3 / The verified repair

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

N = 1
observations = []
def solve(saved_coding, response_coding, prefix, body):
    return prefix+body if saved_coding==response_coding else None
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('resume-coding-change-restart fixture 0', solve("gzip","identity","a"*N,"b"), None)
check('resume-coding-change-restart fixture 1', solve("identity","gzip","a","b"), None)
check('resume-coding-change-restart fixture 2', solve("gzip","gzip","a"*N,"b"), "a"*N+"b")
check('resume-coding-change-restart fixture 3', solve("identity","identity","a","b"), "ab")
check('resume-coding-change-restart fixture 4', solve("br","gzip","a","b"), None)
check('resume-coding-change-restart fixture 5', solve("br","br","",""), "")
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
resume-coding-change-restart fixture 0NoneNonePassed
resume-coding-change-restart fixture 1NoneNonePassed
resume-coding-change-restart fixture 2ababPassed
resume-coding-change-restart fixture 3ababPassed
resume-coding-change-restart fixture 4NoneNonePassed
resume-coding-change-restart fixture 5Passed

SHA-256 / fbaae2f4e4c872cdcd0939de620f1b0790c79cded0ec5cea8f23b28056edb000

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:18.937306+00:00.

Case digest / d175f3a39f9e1abfe2218bcb8adb111afbb93b8d71ceddd109d38a6d676d077e