{"abstract":"Full-response fallback removes partial Content-Range metadata.","category":"HTTP ranges","checks":6,"contract":"Return [status,body,Content-Range-or-null]. Failed If-Range sends the full body and no Content-Range.","evaluation_group":"s3-http_ranges-conditional","failed_approach":"The partial repair uses return [206,part,range_header] if validator_ok else [200,full,\"\"], which still violates the stated contract.","family":"s3-http_ranges-if-range-fallback-clears-range-headers","id":"FA-26371","implementations":{"attempt":{"sha256":"f20bab9e1c47ec38d789ff42f8653ab3563667d10996ca524609b2f3983753d3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(validator_ok, full, part, range_header):\n    return [206,part,range_header] if validator_ok else [200,full,\"\"]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('if-range-fallback-clears-range-headers fixture 0', solve(False,\"f\"*N,\"p\",\"bytes 0-0/9\"), [200,\"f\"*N,None])\ncheck('if-range-fallback-clears-range-headers fixture 1', solve(False,\"\",\"\",\"bytes */0\"), [200,\"\",None])\ncheck('if-range-fallback-clears-range-headers fixture 2', solve(True,\"fff\",\"p\",\"bytes 0-0/3\"), [206,\"p\",\"bytes 0-0/3\"])\ncheck('if-range-fallback-clears-range-headers fixture 3', solve(True,\"f\"*N,\"p\"*N,\"r\"), [206,\"p\"*N,\"r\"])\ncheck('if-range-fallback-clears-range-headers fixture 4', solve(False,\"abc\",\"b\",\"r\"), [200,\"abc\",None])\ncheck('if-range-fallback-clears-range-headers fixture 5', solve(True,\"f\",\"\",\"r\"), [206,\"\",\"r\"])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"f57357a15b12d2f9b992ffd87f86196410cfa7a1bf57cba67581f33181e97425","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(validator_ok, full, part, range_header):\n    return [206,part,range_header] if validator_ok else [200,full,range_header]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('if-range-fallback-clears-range-headers fixture 0', solve(False,\"f\"*N,\"p\",\"bytes 0-0/9\"), [200,\"f\"*N,None])\ncheck('if-range-fallback-clears-range-headers fixture 1', solve(False,\"\",\"\",\"bytes */0\"), [200,\"\",None])\ncheck('if-range-fallback-clears-range-headers fixture 2', solve(True,\"fff\",\"p\",\"bytes 0-0/3\"), [206,\"p\",\"bytes 0-0/3\"])\ncheck('if-range-fallback-clears-range-headers fixture 3', solve(True,\"f\"*N,\"p\"*N,\"r\"), [206,\"p\"*N,\"r\"])\ncheck('if-range-fallback-clears-range-headers fixture 4', solve(False,\"abc\",\"b\",\"r\"), [200,\"abc\",None])\ncheck('if-range-fallback-clears-range-headers fixture 5', solve(True,\"f\",\"\",\"r\"), [206,\"\",\"r\"])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"de93aced6baccff9e82aff307fdb1c1bd1207bc3cf9eb192ee83345113e5e5dd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(validator_ok, full, part, range_header):\n    return [206,part,range_header] if validator_ok else [200,full,None]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('if-range-fallback-clears-range-headers fixture 0', solve(False,\"f\"*N,\"p\",\"bytes 0-0/9\"), [200,\"f\"*N,None])\ncheck('if-range-fallback-clears-range-headers fixture 1', solve(False,\"\",\"\",\"bytes */0\"), [200,\"\",None])\ncheck('if-range-fallback-clears-range-headers fixture 2', solve(True,\"fff\",\"p\",\"bytes 0-0/3\"), [206,\"p\",\"bytes 0-0/3\"])\ncheck('if-range-fallback-clears-range-headers fixture 3', solve(True,\"f\"*N,\"p\"*N,\"r\"), [206,\"p\"*N,\"r\"])\ncheck('if-range-fallback-clears-range-headers fixture 4', solve(False,\"abc\",\"b\",\"r\"), [200,\"abc\",None])\ncheck('if-range-fallback-clears-range-headers fixture 5', solve(True,\"f\",\"\",\"r\"), [206,\"\",\"r\"])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-http_ranges-if-range-fallback-clears-range-headers","generated_at":"2026-09-29T14:41:15.477293+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Range responses combine representation identity, conditional requests, framing, and partial-object state.","repair":"Apply the bounded decision exactly: return [206,part,range_header] if validator_ok else [200,full,None]","root_cause":"The if-range-fallback-clears-range-headers decision uses return [206,part,range_header] if validator_ok else [200,full,range_header].","sha256":"8f3a9ab474c59d2cf3ed0a1fd7c1cad283751bf82f515123476f59500e1bbcde","title":"Full-response fallback removes partial Content-Range metadata · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.912,"exit_code":1,"observations":[{"actual":[200,"f",""],"check":"if-range-fallback-clears-range-headers fixture 0","expected":[200,"f",null],"passed":false},{"actual":[200,"",""],"check":"if-range-fallback-clears-range-headers fixture 1","expected":[200,"",null],"passed":false},{"actual":[206,"p","bytes 0-0/3"],"check":"if-range-fallback-clears-range-headers fixture 2","expected":[206,"p","bytes 0-0/3"],"passed":true},{"actual":[206,"p","r"],"check":"if-range-fallback-clears-range-headers fixture 3","expected":[206,"p","r"],"passed":true},{"actual":[200,"abc",""],"check":"if-range-fallback-clears-range-headers fixture 4","expected":[200,"abc",null],"passed":false},{"actual":[206,"","r"],"check":"if-range-fallback-clears-range-headers fixture 5","expected":[206,"","r"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"if-range-fallback-clears-range-headers fixture 0\", \"actual\": [200, \"f\", \"\"], \"expected\": [200, \"f\", null], \"passed\": false}, {\"check\": \"if-range-fallback-clears-range-headers fixture 1\", \"actual\": [200, \"\", \"\"], \"expected\": [200, \"\", null], \"passed\": false}, {\"check\": \"if-range-fallback-clears-range-headers fixture 2\", \"actual\": [206, \"p\", \"bytes 0-0/3\"], \"expected\": [206, \"p\", \"bytes 0-0/3\"], \"passed\": true}, {\"check\": \"if-range-fallback-clears-range-headers fixture 3\", \"actual\": [206, \"p\", \"r\"], \"expected\": [206, \"p\", \"r\"], \"passed\": true}, {\"check\": \"if-range-fallback-clears-range-headers fixture 4\", \"actual\": [200, \"abc\", \"\"], \"expected\": [200, \"abc\", null], \"passed\": false}, {\"check\": \"if-range-fallback-clears-range-headers fixture 5\", \"actual\": [206, \"\", \"r\"], \"expected\": [206, \"\", \"r\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.12,"exit_code":1,"observations":[{"actual":[200,"f","bytes 0-0/9"],"check":"if-range-fallback-clears-range-headers fixture 0","expected":[200,"f",null],"passed":false},{"actual":[200,"","bytes */0"],"check":"if-range-fallback-clears-range-headers fixture 1","expected":[200,"",null],"passed":false},{"actual":[206,"p","bytes 0-0/3"],"check":"if-range-fallback-clears-range-headers fixture 2","expected":[206,"p","bytes 0-0/3"],"passed":true},{"actual":[206,"p","r"],"check":"if-range-fallback-clears-range-headers fixture 3","expected":[206,"p","r"],"passed":true},{"actual":[200,"abc","r"],"check":"if-range-fallback-clears-range-headers fixture 4","expected":[200,"abc",null],"passed":false},{"actual":[206,"","r"],"check":"if-range-fallback-clears-range-headers fixture 5","expected":[206,"","r"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"if-range-fallback-clears-range-headers fixture 0\", \"actual\": [200, \"f\", \"bytes 0-0/9\"], \"expected\": [200, \"f\", null], \"passed\": false}, {\"check\": \"if-range-fallback-clears-range-headers fixture 1\", \"actual\": [200, \"\", \"bytes */0\"], \"expected\": [200, \"\", null], \"passed\": false}, {\"check\": \"if-range-fallback-clears-range-headers fixture 2\", \"actual\": [206, \"p\", \"bytes 0-0/3\"], \"expected\": [206, \"p\", \"bytes 0-0/3\"], \"passed\": true}, {\"check\": \"if-range-fallback-clears-range-headers fixture 3\", \"actual\": [206, \"p\", \"r\"], \"expected\": [206, \"p\", \"r\"], \"passed\": true}, {\"check\": \"if-range-fallback-clears-range-headers fixture 4\", \"actual\": [200, \"abc\", \"r\"], \"expected\": [200, \"abc\", null], \"passed\": false}, {\"check\": \"if-range-fallback-clears-range-headers fixture 5\", \"actual\": [206, \"\", \"r\"], \"expected\": [206, \"\", \"r\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":37.984,"exit_code":0,"observations":[{"actual":[200,"f",null],"check":"if-range-fallback-clears-range-headers fixture 0","expected":[200,"f",null],"passed":true},{"actual":[200,"",null],"check":"if-range-fallback-clears-range-headers fixture 1","expected":[200,"",null],"passed":true},{"actual":[206,"p","bytes 0-0/3"],"check":"if-range-fallback-clears-range-headers fixture 2","expected":[206,"p","bytes 0-0/3"],"passed":true},{"actual":[206,"p","r"],"check":"if-range-fallback-clears-range-headers fixture 3","expected":[206,"p","r"],"passed":true},{"actual":[200,"abc",null],"check":"if-range-fallback-clears-range-headers fixture 4","expected":[200,"abc",null],"passed":true},{"actual":[206,"","r"],"check":"if-range-fallback-clears-range-headers fixture 5","expected":[206,"","r"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"if-range-fallback-clears-range-headers fixture 0\", \"actual\": [200, \"f\", null], \"expected\": [200, \"f\", null], \"passed\": true}, {\"check\": \"if-range-fallback-clears-range-headers fixture 1\", \"actual\": [200, \"\", null], \"expected\": [200, \"\", null], \"passed\": true}, {\"check\": \"if-range-fallback-clears-range-headers fixture 2\", \"actual\": [206, \"p\", \"bytes 0-0/3\"], \"expected\": [206, \"p\", \"bytes 0-0/3\"], \"passed\": true}, {\"check\": \"if-range-fallback-clears-range-headers fixture 3\", \"actual\": [206, \"p\", \"r\"], \"expected\": [206, \"p\", \"r\"], \"passed\": true}, {\"check\": \"if-range-fallback-clears-range-headers fixture 4\", \"actual\": [200, \"abc\", null], \"expected\": [200, \"abc\", null], \"passed\": true}, {\"check\": \"if-range-fallback-clears-range-headers fixture 5\", \"actual\": [206, \"\", \"r\"], \"expected\": [206, \"\", \"r\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}