{"abstract":"Zero-length callbacks erase or invent consumer-visible delivery","category":"HTTP retries","checks":7,"contract":"begin starts an attempt only while nonterminal, headers records a status, deliver(bytes) records irreversible delivery, fail allows retry only before any delivered bytes. A zero-byte delivery is reversible. finish terminally succeeds. cancel terminally cancels. New attempts reset their local status but never erase already exposed data. Return retry decisions and exposed byte count.","evaluation_group":"s3-http_retries-response-consumer","failed_approach":"The attempted repair changes the faulty site to delivered+=1 but still violates a regression oracle.","family":"s3-http_retries-response-consumer-delivery-accounting","id":"FA-29701","implementations":{"attempt":{"sha256":"665c27d0c938f3260601398353a05f4f0641369658dd27cb9171d72b8fe2ecc4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    active=False; delivered=0; status=None; terminal=False; out=[]\n    for e in events:\n        if e[0]=='begin':\n            if terminal: out.append('terminal'); continue\n            active=True\n            status=None\n        elif e[0]=='headers' and active:\n            status=e[1]\n        elif e[0]=='deliver' and active:\n            delivered+=1\n        elif e[0]=='fail':\n            if terminal: out.append('terminal'); continue\n            if not active: out.append('inactive'); continue\n            active=False\n            if delivered>0:\n                terminal=True\n                out.append(['partial',status])\n            else: out.append(['retry',status])\n        elif e[0]=='finish' and active:\n            terminal=True; active=False; out.append('success')\n        elif e[0]=='cancel':\n            terminal=True; active=False; out.append('cancelled')\n    return [out,delivered]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('0', solve([]), [[],0])\ncheck('1', solve([('fail',)]), [['inactive'],0])\ncheck('2', solve([('begin',),('headers',503),('deliver',0),('fail',),('fail',),('begin',),('fail',)]), [[['retry',503],'inactive',['retry',None]],0])\ncheck('3', solve([('begin',),('headers',200),('deliver',1),('deliver',0),('fail',),('begin',)]), [[['partial',200],'terminal'],1])\ncheck('4', solve([('begin',),('headers',502),('deliver',N+2),('deliver',2),('fail',)]), [[['partial',502]],N+4])\ncheck('5', solve([('begin',),('finish',),('begin',),('fail',)]), [['success','terminal','terminal'],0])\ncheck('6', solve([('begin',),('cancel',),('begin',)]), [['cancelled','terminal'],0])\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":"ebf3b5e56f0174c624b5989401eb078fa7bceeece36ecbdaf920e8c04e124fe2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    active=False; delivered=0; status=None; terminal=False; out=[]\n    for e in events:\n        if e[0]=='begin':\n            if terminal: out.append('terminal'); continue\n            active=True\n            status=None\n        elif e[0]=='headers' and active:\n            status=e[1]\n        elif e[0]=='deliver' and active:\n            delivered=e[1]\n        elif e[0]=='fail':\n            if terminal: out.append('terminal'); continue\n            if not active: out.append('inactive'); continue\n            active=False\n            if delivered>0:\n                terminal=True\n                out.append(['partial',status])\n            else: out.append(['retry',status])\n        elif e[0]=='finish' and active:\n            terminal=True; active=False; out.append('success')\n        elif e[0]=='cancel':\n            terminal=True; active=False; out.append('cancelled')\n    return [out,delivered]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('0', solve([]), [[],0])\ncheck('1', solve([('fail',)]), [['inactive'],0])\ncheck('2', solve([('begin',),('headers',503),('deliver',0),('fail',),('fail',),('begin',),('fail',)]), [[['retry',503],'inactive',['retry',None]],0])\ncheck('3', solve([('begin',),('headers',200),('deliver',1),('deliver',0),('fail',),('begin',)]), [[['partial',200],'terminal'],1])\ncheck('4', solve([('begin',),('headers',502),('deliver',N+2),('deliver',2),('fail',)]), [[['partial',502]],N+4])\ncheck('5', solve([('begin',),('finish',),('begin',),('fail',)]), [['success','terminal','terminal'],0])\ncheck('6', solve([('begin',),('cancel',),('begin',)]), [['cancelled','terminal'],0])\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":"364ede61dc03da887ab908f371923b3dd15510b1408c40eef135c5261cb33632","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    active=False; delivered=0; status=None; terminal=False; out=[]\n    for e in events:\n        if e[0]=='begin':\n            if terminal: out.append('terminal'); continue\n            active=True\n            status=None\n        elif e[0]=='headers' and active:\n            status=e[1]\n        elif e[0]=='deliver' and active:\n            delivered+=e[1]\n        elif e[0]=='fail':\n            if terminal: out.append('terminal'); continue\n            if not active: out.append('inactive'); continue\n            active=False\n            if delivered>0:\n                terminal=True\n                out.append(['partial',status])\n            else: out.append(['retry',status])\n        elif e[0]=='finish' and active:\n            terminal=True; active=False; out.append('success')\n        elif e[0]=='cancel':\n            terminal=True; active=False; out.append('cancelled')\n    return [out,delivered]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('0', solve([]), [[],0])\ncheck('1', solve([('fail',)]), [['inactive'],0])\ncheck('2', solve([('begin',),('headers',503),('deliver',0),('fail',),('fail',),('begin',),('fail',)]), [[['retry',503],'inactive',['retry',None]],0])\ncheck('3', solve([('begin',),('headers',200),('deliver',1),('deliver',0),('fail',),('begin',)]), [[['partial',200],'terminal'],1])\ncheck('4', solve([('begin',),('headers',502),('deliver',N+2),('deliver',2),('fail',)]), [[['partial',502]],N+4])\ncheck('5', solve([('begin',),('finish',),('begin',),('fail',)]), [['success','terminal','terminal'],0])\ncheck('6', solve([('begin',),('cancel',),('begin',)]), [['cancelled','terminal'],0])\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":"Stipulated bounded simulator, not a complete HTTP implementation or a standards conformance claim. 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_retries-response-consumer-delivery-accounting","generated_at":"2026-09-29T14:41:45.781189+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Offline deterministic model of HTTP request retries.","repair":"Restore the specified transition delivered+=e[1].","root_cause":"Zero-length callbacks erase or invent consumer-visible delivery","sha256":"bf612419feadbb6af7145555b91dfaa68285b5114eac71967e9c590267ea65dd","title":"Retry after consumer-visible response delivery: Zero-length callbacks erase or invent consumer-visible delivery · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.101,"exit_code":1,"observations":[{"actual":[[],0],"check":"0","expected":[[],0],"passed":true},{"actual":[["inactive"],0],"check":"1","expected":[["inactive"],0],"passed":true},{"actual":[[["partial",503],"terminal","terminal","terminal"],1],"check":"2","expected":[[["retry",503],"inactive",["retry",null]],0],"passed":false},{"actual":[[["partial",200],"terminal"],2],"check":"3","expected":[[["partial",200],"terminal"],1],"passed":false},{"actual":[[["partial",502]],2],"check":"4","expected":[[["partial",502]],5],"passed":false},{"actual":[["success","terminal","terminal"],0],"check":"5","expected":[["success","terminal","terminal"],0],"passed":true},{"actual":[["cancelled","terminal"],0],"check":"6","expected":[["cancelled","terminal"],0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"0\", \"actual\": [[], 0], \"expected\": [[], 0], \"passed\": true}, {\"check\": \"1\", \"actual\": [[\"inactive\"], 0], \"expected\": [[\"inactive\"], 0], \"passed\": true}, {\"check\": \"2\", \"actual\": [[[\"partial\", 503], \"terminal\", \"terminal\", \"terminal\"], 1], \"expected\": [[[\"retry\", 503], \"inactive\", [\"retry\", null]], 0], \"passed\": false}, {\"check\": \"3\", \"actual\": [[[\"partial\", 200], \"terminal\"], 2], \"expected\": [[[\"partial\", 200], \"terminal\"], 1], \"passed\": false}, {\"check\": \"4\", \"actual\": [[[\"partial\", 502]], 2], \"expected\": [[[\"partial\", 502]], 5], \"passed\": false}, {\"check\": \"5\", \"actual\": [[\"success\", \"terminal\", \"terminal\"], 0], \"expected\": [[\"success\", \"terminal\", \"terminal\"], 0], \"passed\": true}, {\"check\": \"6\", \"actual\": [[\"cancelled\", \"terminal\"], 0], \"expected\": [[\"cancelled\", \"terminal\"], 0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.515,"exit_code":1,"observations":[{"actual":[[],0],"check":"0","expected":[[],0],"passed":true},{"actual":[["inactive"],0],"check":"1","expected":[["inactive"],0],"passed":true},{"actual":[[["retry",503],"inactive",["retry",null]],0],"check":"2","expected":[[["retry",503],"inactive",["retry",null]],0],"passed":true},{"actual":[[["retry",200]],0],"check":"3","expected":[[["partial",200],"terminal"],1],"passed":false},{"actual":[[["partial",502]],2],"check":"4","expected":[[["partial",502]],5],"passed":false},{"actual":[["success","terminal","terminal"],0],"check":"5","expected":[["success","terminal","terminal"],0],"passed":true},{"actual":[["cancelled","terminal"],0],"check":"6","expected":[["cancelled","terminal"],0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"0\", \"actual\": [[], 0], \"expected\": [[], 0], \"passed\": true}, {\"check\": \"1\", \"actual\": [[\"inactive\"], 0], \"expected\": [[\"inactive\"], 0], \"passed\": true}, {\"check\": \"2\", \"actual\": [[[\"retry\", 503], \"inactive\", [\"retry\", null]], 0], \"expected\": [[[\"retry\", 503], \"inactive\", [\"retry\", null]], 0], \"passed\": true}, {\"check\": \"3\", \"actual\": [[[\"retry\", 200]], 0], \"expected\": [[[\"partial\", 200], \"terminal\"], 1], \"passed\": false}, {\"check\": \"4\", \"actual\": [[[\"partial\", 502]], 2], \"expected\": [[[\"partial\", 502]], 5], \"passed\": false}, {\"check\": \"5\", \"actual\": [[\"success\", \"terminal\", \"terminal\"], 0], \"expected\": [[\"success\", \"terminal\", \"terminal\"], 0], \"passed\": true}, {\"check\": \"6\", \"actual\": [[\"cancelled\", \"terminal\"], 0], \"expected\": [[\"cancelled\", \"terminal\"], 0], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.51,"exit_code":0,"observations":[{"actual":[[],0],"check":"0","expected":[[],0],"passed":true},{"actual":[["inactive"],0],"check":"1","expected":[["inactive"],0],"passed":true},{"actual":[[["retry",503],"inactive",["retry",null]],0],"check":"2","expected":[[["retry",503],"inactive",["retry",null]],0],"passed":true},{"actual":[[["partial",200],"terminal"],1],"check":"3","expected":[[["partial",200],"terminal"],1],"passed":true},{"actual":[[["partial",502]],5],"check":"4","expected":[[["partial",502]],5],"passed":true},{"actual":[["success","terminal","terminal"],0],"check":"5","expected":[["success","terminal","terminal"],0],"passed":true},{"actual":[["cancelled","terminal"],0],"check":"6","expected":[["cancelled","terminal"],0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"0\", \"actual\": [[], 0], \"expected\": [[], 0], \"passed\": true}, {\"check\": \"1\", \"actual\": [[\"inactive\"], 0], \"expected\": [[\"inactive\"], 0], \"passed\": true}, {\"check\": \"2\", \"actual\": [[[\"retry\", 503], \"inactive\", [\"retry\", null]], 0], \"expected\": [[[\"retry\", 503], \"inactive\", [\"retry\", null]], 0], \"passed\": true}, {\"check\": \"3\", \"actual\": [[[\"partial\", 200], \"terminal\"], 1], \"expected\": [[[\"partial\", 200], \"terminal\"], 1], \"passed\": true}, {\"check\": \"4\", \"actual\": [[[\"partial\", 502]], 5], \"expected\": [[[\"partial\", 502]], 5], \"passed\": true}, {\"check\": \"5\", \"actual\": [[\"success\", \"terminal\", \"terminal\"], 0], \"expected\": [[\"success\", \"terminal\", \"terminal\"], 0], \"passed\": true}, {\"check\": \"6\", \"actual\": [[\"cancelled\", \"terminal\"], 0], \"expected\": [[\"cancelled\", \"terminal\"], 0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}