{"abstract":"A short part read prevents emission of a successful closing delimiter.","category":"HTTP ranges","checks":6,"contract":"Return complete only when each part has exactly its promised ASCII byte length and the part counts match; otherwise abort. Empty part list is complete.","evaluation_group":"s3-http_ranges-multipart","failed_approach":"The partial repair uses return \"complete\" if all(len(b)>=n for n,b in zip(expected_lengths,bodies)) else \"abort\", which still violates the stated contract.","family":"s3-http_ranges-multipart-short-read-abort","id":"FA-26481","implementations":{"attempt":{"sha256":"d9176f539f6d3d2e133fa15f9d26d4321cfb48643f157989cd39b94c33ed4fae","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(expected_lengths, bodies):\n    return \"complete\" if all(len(b)>=n for n,b in zip(expected_lengths,bodies)) else \"abort\"\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('multipart-short-read-abort fixture 0', solve([N],[\"x\"*(N-1)]), \"abort\")\ncheck('multipart-short-read-abort fixture 1', solve([N],[\"x\"*(N+1)]), \"abort\")\ncheck('multipart-short-read-abort fixture 2', solve([N],[\"x\"*N]), \"complete\")\ncheck('multipart-short-read-abort fixture 3', solve([1,1],[\"x\"]), \"abort\")\ncheck('multipart-short-read-abort fixture 4', solve([],[]), \"complete\")\ncheck('multipart-short-read-abort fixture 5', solve([0],[\"\"]), \"complete\")\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":"1744a09a343cc7783439bf7054d1b2eb643d9bc7dfcac2a792586d572d7d2332","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(expected_lengths, bodies):\n    return \"complete\"\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('multipart-short-read-abort fixture 0', solve([N],[\"x\"*(N-1)]), \"abort\")\ncheck('multipart-short-read-abort fixture 1', solve([N],[\"x\"*(N+1)]), \"abort\")\ncheck('multipart-short-read-abort fixture 2', solve([N],[\"x\"*N]), \"complete\")\ncheck('multipart-short-read-abort fixture 3', solve([1,1],[\"x\"]), \"abort\")\ncheck('multipart-short-read-abort fixture 4', solve([],[]), \"complete\")\ncheck('multipart-short-read-abort fixture 5', solve([0],[\"\"]), \"complete\")\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":"cd861497575467c1f43fd89b8c15b0a97e5d41eb772d6231bf57fc4c473675bd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(expected_lengths, bodies):\n    return \"complete\" if len(expected_lengths)==len(bodies) and all(len(b)==n for n,b in zip(expected_lengths,bodies)) else \"abort\"\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('multipart-short-read-abort fixture 0', solve([N],[\"x\"*(N-1)]), \"abort\")\ncheck('multipart-short-read-abort fixture 1', solve([N],[\"x\"*(N+1)]), \"abort\")\ncheck('multipart-short-read-abort fixture 2', solve([N],[\"x\"*N]), \"complete\")\ncheck('multipart-short-read-abort fixture 3', solve([1,1],[\"x\"]), \"abort\")\ncheck('multipart-short-read-abort fixture 4', solve([],[]), \"complete\")\ncheck('multipart-short-read-abort fixture 5', solve([0],[\"\"]), \"complete\")\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-multipart-short-read-abort","generated_at":"2026-09-29T14:41:16.320149+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 \"complete\" if len(expected_lengths)==len(bodies) and all(len(b)==n for n,b in zip(expected_lengths,bodies)) else \"abort\"","root_cause":"The multipart-short-read-abort decision uses return \"complete\".","sha256":"918c0bdc0f40185b1824bd19dfd1bc1a71a6abca3a8316956450a31ef67f9faf","title":"A short part read prevents emission of a successful closing delimiter · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.241,"exit_code":1,"observations":[{"actual":"abort","check":"multipart-short-read-abort fixture 0","expected":"abort","passed":true},{"actual":"complete","check":"multipart-short-read-abort fixture 1","expected":"abort","passed":false},{"actual":"complete","check":"multipart-short-read-abort fixture 2","expected":"complete","passed":true},{"actual":"complete","check":"multipart-short-read-abort fixture 3","expected":"abort","passed":false},{"actual":"complete","check":"multipart-short-read-abort fixture 4","expected":"complete","passed":true},{"actual":"complete","check":"multipart-short-read-abort fixture 5","expected":"complete","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"multipart-short-read-abort fixture 0\", \"actual\": \"abort\", \"expected\": \"abort\", \"passed\": true}, {\"check\": \"multipart-short-read-abort fixture 1\", \"actual\": \"complete\", \"expected\": \"abort\", \"passed\": false}, {\"check\": \"multipart-short-read-abort fixture 2\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"multipart-short-read-abort fixture 3\", \"actual\": \"complete\", \"expected\": \"abort\", \"passed\": false}, {\"check\": \"multipart-short-read-abort fixture 4\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"multipart-short-read-abort fixture 5\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.659,"exit_code":1,"observations":[{"actual":"complete","check":"multipart-short-read-abort fixture 0","expected":"abort","passed":false},{"actual":"complete","check":"multipart-short-read-abort fixture 1","expected":"abort","passed":false},{"actual":"complete","check":"multipart-short-read-abort fixture 2","expected":"complete","passed":true},{"actual":"complete","check":"multipart-short-read-abort fixture 3","expected":"abort","passed":false},{"actual":"complete","check":"multipart-short-read-abort fixture 4","expected":"complete","passed":true},{"actual":"complete","check":"multipart-short-read-abort fixture 5","expected":"complete","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"multipart-short-read-abort fixture 0\", \"actual\": \"complete\", \"expected\": \"abort\", \"passed\": false}, {\"check\": \"multipart-short-read-abort fixture 1\", \"actual\": \"complete\", \"expected\": \"abort\", \"passed\": false}, {\"check\": \"multipart-short-read-abort fixture 2\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"multipart-short-read-abort fixture 3\", \"actual\": \"complete\", \"expected\": \"abort\", \"passed\": false}, {\"check\": \"multipart-short-read-abort fixture 4\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"multipart-short-read-abort fixture 5\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.977,"exit_code":0,"observations":[{"actual":"abort","check":"multipart-short-read-abort fixture 0","expected":"abort","passed":true},{"actual":"abort","check":"multipart-short-read-abort fixture 1","expected":"abort","passed":true},{"actual":"complete","check":"multipart-short-read-abort fixture 2","expected":"complete","passed":true},{"actual":"abort","check":"multipart-short-read-abort fixture 3","expected":"abort","passed":true},{"actual":"complete","check":"multipart-short-read-abort fixture 4","expected":"complete","passed":true},{"actual":"complete","check":"multipart-short-read-abort fixture 5","expected":"complete","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"multipart-short-read-abort fixture 0\", \"actual\": \"abort\", \"expected\": \"abort\", \"passed\": true}, {\"check\": \"multipart-short-read-abort fixture 1\", \"actual\": \"abort\", \"expected\": \"abort\", \"passed\": true}, {\"check\": \"multipart-short-read-abort fixture 2\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"multipart-short-read-abort fixture 3\", \"actual\": \"abort\", \"expected\": \"abort\", \"passed\": true}, {\"check\": \"multipart-short-read-abort fixture 4\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"multipart-short-read-abort fixture 5\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}