{"abstract":"Errors after partial headers abort instead of injecting a second response.","category":"HTTP ranges","checks":6,"contract":"If failure occurs after headers, abort with empty body; before headers return error500. No failure continues body.","evaluation_group":"s3-http_ranges-stream-transfer","failed_approach":"The partial repair uses return [\"abort\",\"\"] if headers_sent else ([\"error500\",\"\"] if failure else [\"continue\",body]), which still violates the stated contract.","family":"s3-http_ranges-stream-error-after-headers","id":"FA-26586","implementations":{"attempt":{"sha256":"3b9659ec65fee67ea7a77cace2a2aff3a09c7700ebfce37d7ace19ac56ca3416","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(headers_sent, failure, body):\n    return [\"abort\",\"\"] if headers_sent else ([\"error500\",\"\"] if failure else [\"continue\",body])\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('stream-error-after-headers fixture 0', solve(True,True,\"p\"*N), [\"abort\",\"\"])\ncheck('stream-error-after-headers fixture 1', solve(True,False,\"p\"*N), [\"continue\",\"p\"*N])\ncheck('stream-error-after-headers fixture 2', solve(False,True,\"p\"), [\"error500\",\"\"])\ncheck('stream-error-after-headers fixture 3', solve(False,False,\"p\"), [\"continue\",\"p\"])\ncheck('stream-error-after-headers fixture 4', solve(True,True,\"\"), [\"abort\",\"\"])\ncheck('stream-error-after-headers fixture 5', solve(True,False,\"\"), [\"continue\",\"\"])\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":"ad135279c2198d78df095dab23f7051d7def53f919b871a1da58a3347aeb97c1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(headers_sent, failure, body):\n    return [\"error500\",\"\"] if failure else [\"continue\",body]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('stream-error-after-headers fixture 0', solve(True,True,\"p\"*N), [\"abort\",\"\"])\ncheck('stream-error-after-headers fixture 1', solve(True,False,\"p\"*N), [\"continue\",\"p\"*N])\ncheck('stream-error-after-headers fixture 2', solve(False,True,\"p\"), [\"error500\",\"\"])\ncheck('stream-error-after-headers fixture 3', solve(False,False,\"p\"), [\"continue\",\"p\"])\ncheck('stream-error-after-headers fixture 4', solve(True,True,\"\"), [\"abort\",\"\"])\ncheck('stream-error-after-headers fixture 5', solve(True,False,\"\"), [\"continue\",\"\"])\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":"79aa7d1fa772b73488fed46ed2b89a574827d4f6a07414fe8d11f45419415e6c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(headers_sent, failure, body):\n    return ([\"abort\",\"\"] if headers_sent else [\"error500\",\"\"]) if failure else [\"continue\",body]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('stream-error-after-headers fixture 0', solve(True,True,\"p\"*N), [\"abort\",\"\"])\ncheck('stream-error-after-headers fixture 1', solve(True,False,\"p\"*N), [\"continue\",\"p\"*N])\ncheck('stream-error-after-headers fixture 2', solve(False,True,\"p\"), [\"error500\",\"\"])\ncheck('stream-error-after-headers fixture 3', solve(False,False,\"p\"), [\"continue\",\"p\"])\ncheck('stream-error-after-headers fixture 4', solve(True,True,\"\"), [\"abort\",\"\"])\ncheck('stream-error-after-headers fixture 5', solve(True,False,\"\"), [\"continue\",\"\"])\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-stream-error-after-headers","generated_at":"2026-09-29T14:41:17.350781+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 ([\"abort\",\"\"] if headers_sent else [\"error500\",\"\"]) if failure else [\"continue\",body]","root_cause":"The stream-error-after-headers decision uses return [\"error500\",\"\"] if failure else [\"continue\",body].","sha256":"88a691b668da279421990ec47786d8ff8ca997db73f8bd2d5b13db97e7fb3e8b","title":"Errors after partial headers abort instead of injecting a second response · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.256,"exit_code":1,"observations":[{"actual":["abort",""],"check":"stream-error-after-headers fixture 0","expected":["abort",""],"passed":true},{"actual":["abort",""],"check":"stream-error-after-headers fixture 1","expected":["continue","p"],"passed":false},{"actual":["error500",""],"check":"stream-error-after-headers fixture 2","expected":["error500",""],"passed":true},{"actual":["continue","p"],"check":"stream-error-after-headers fixture 3","expected":["continue","p"],"passed":true},{"actual":["abort",""],"check":"stream-error-after-headers fixture 4","expected":["abort",""],"passed":true},{"actual":["abort",""],"check":"stream-error-after-headers fixture 5","expected":["continue",""],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stream-error-after-headers fixture 0\", \"actual\": [\"abort\", \"\"], \"expected\": [\"abort\", \"\"], \"passed\": true}, {\"check\": \"stream-error-after-headers fixture 1\", \"actual\": [\"abort\", \"\"], \"expected\": [\"continue\", \"p\"], \"passed\": false}, {\"check\": \"stream-error-after-headers fixture 2\", \"actual\": [\"error500\", \"\"], \"expected\": [\"error500\", \"\"], \"passed\": true}, {\"check\": \"stream-error-after-headers fixture 3\", \"actual\": [\"continue\", \"p\"], \"expected\": [\"continue\", \"p\"], \"passed\": true}, {\"check\": \"stream-error-after-headers fixture 4\", \"actual\": [\"abort\", \"\"], \"expected\": [\"abort\", \"\"], \"passed\": true}, {\"check\": \"stream-error-after-headers fixture 5\", \"actual\": [\"abort\", \"\"], \"expected\": [\"continue\", \"\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.079,"exit_code":1,"observations":[{"actual":["error500",""],"check":"stream-error-after-headers fixture 0","expected":["abort",""],"passed":false},{"actual":["continue","p"],"check":"stream-error-after-headers fixture 1","expected":["continue","p"],"passed":true},{"actual":["error500",""],"check":"stream-error-after-headers fixture 2","expected":["error500",""],"passed":true},{"actual":["continue","p"],"check":"stream-error-after-headers fixture 3","expected":["continue","p"],"passed":true},{"actual":["error500",""],"check":"stream-error-after-headers fixture 4","expected":["abort",""],"passed":false},{"actual":["continue",""],"check":"stream-error-after-headers fixture 5","expected":["continue",""],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stream-error-after-headers fixture 0\", \"actual\": [\"error500\", \"\"], \"expected\": [\"abort\", \"\"], \"passed\": false}, {\"check\": \"stream-error-after-headers fixture 1\", \"actual\": [\"continue\", \"p\"], \"expected\": [\"continue\", \"p\"], \"passed\": true}, {\"check\": \"stream-error-after-headers fixture 2\", \"actual\": [\"error500\", \"\"], \"expected\": [\"error500\", \"\"], \"passed\": true}, {\"check\": \"stream-error-after-headers fixture 3\", \"actual\": [\"continue\", \"p\"], \"expected\": [\"continue\", \"p\"], \"passed\": true}, {\"check\": \"stream-error-after-headers fixture 4\", \"actual\": [\"error500\", \"\"], \"expected\": [\"abort\", \"\"], \"passed\": false}, {\"check\": \"stream-error-after-headers fixture 5\", \"actual\": [\"continue\", \"\"], \"expected\": [\"continue\", \"\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.839,"exit_code":0,"observations":[{"actual":["abort",""],"check":"stream-error-after-headers fixture 0","expected":["abort",""],"passed":true},{"actual":["continue","p"],"check":"stream-error-after-headers fixture 1","expected":["continue","p"],"passed":true},{"actual":["error500",""],"check":"stream-error-after-headers fixture 2","expected":["error500",""],"passed":true},{"actual":["continue","p"],"check":"stream-error-after-headers fixture 3","expected":["continue","p"],"passed":true},{"actual":["abort",""],"check":"stream-error-after-headers fixture 4","expected":["abort",""],"passed":true},{"actual":["continue",""],"check":"stream-error-after-headers fixture 5","expected":["continue",""],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stream-error-after-headers fixture 0\", \"actual\": [\"abort\", \"\"], \"expected\": [\"abort\", \"\"], \"passed\": true}, {\"check\": \"stream-error-after-headers fixture 1\", \"actual\": [\"continue\", \"p\"], \"expected\": [\"continue\", \"p\"], \"passed\": true}, {\"check\": \"stream-error-after-headers fixture 2\", \"actual\": [\"error500\", \"\"], \"expected\": [\"error500\", \"\"], \"passed\": true}, {\"check\": \"stream-error-after-headers fixture 3\", \"actual\": [\"continue\", \"p\"], \"expected\": [\"continue\", \"p\"], \"passed\": true}, {\"check\": \"stream-error-after-headers fixture 4\", \"actual\": [\"abort\", \"\"], \"expected\": [\"abort\", \"\"], \"passed\": true}, {\"check\": \"stream-error-after-headers fixture 5\", \"actual\": [\"continue\", \"\"], \"expected\": [\"continue\", \"\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}