{"abstract":"Cached head updates do not replace get payload.","category":"HTTP caching","checks":4,"contract":"Bounded offline decision model: cached head updates do not replace get payload. Inputs are already validated protocol fields; the explicit fixtures define the supported policy, not a complete protocol implementation.","contract_signature":"method, old_body, new_body","evaluation_group":"xh-cached-head-updates-do-not-replace-get-payload","failed_approach":"The attempted repair uses `old_body` and still violates a separate fixture.","family":"xh-cached-head-updates-do-not-replace-get-payload","id":"FA-6816","implementations":{"attempt":{"sha256":"39db26370df64fa8b9e065e3ba033cefb415dc019790bedbbb3ad7d0f43c6bd2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport ipaddress\nimport re\nfrom urllib.parse import urlsplit, urljoin\nN = 1\nobservations = []\ndef solve(method, old_body, new_body):\n    return old_body\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\n_fixtures = [\"check('fixture 1', solve('HEAD', 'abc', ''), 'abc')\", \"check('fixture 2', solve('GET', 'abc', 'xyz'), 'xyz')\", \"check('fixture 3', solve('HEAD', '', ''), '')\", \"check('fixture 4', solve('GET', '', 'x'), 'x')\"]\nfor _line in _fixtures[N % len(_fixtures):] + _fixtures[:N % len(_fixtures)]:\n    exec(_line)\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":"42436192d4d10c8bd195a691724ddfb77c93aea57bc5eecd00ac2af4b8899907","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport ipaddress\nimport re\nfrom urllib.parse import urlsplit, urljoin\nN = 1\nobservations = []\ndef solve(method, old_body, new_body):\n    return new_body\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\n_fixtures = [\"check('fixture 1', solve('HEAD', 'abc', ''), 'abc')\", \"check('fixture 2', solve('GET', 'abc', 'xyz'), 'xyz')\", \"check('fixture 3', solve('HEAD', '', ''), '')\", \"check('fixture 4', solve('GET', '', 'x'), 'x')\"]\nfor _line in _fixtures[N % len(_fixtures):] + _fixtures[:N % len(_fixtures)]:\n    exec(_line)\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":"Bounded deterministic policy model over validated inputs; not a complete protocol stack or an interoperability claim. The five variants rotate the same explicit fixture set. 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":"xh-cached-head-updates-do-not-replace-get-payload","generated_at":"2026-09-29T14:38:05.535158+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"This deterministic http caching model isolates the cached-head-updates-do-not-replace-get-payload policy at a network component boundary.","root_cause":"The faulty implementation uses `new_body` for the cached-head-updates-do-not-replace-get-payload decision.","sha256":"99774b71b12f05226e59e8d34af3b13364a2862547c9fb9cdd8319082d30e148","title":"Cached head updates do not replace get payload · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":89.184,"exit_code":1,"observations":[{"actual":"abc","check":"fixture 2","expected":"xyz","passed":false},{"actual":"","check":"fixture 3","expected":"","passed":true},{"actual":"","check":"fixture 4","expected":"x","passed":false},{"actual":"abc","check":"fixture 1","expected":"abc","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 2\", \"actual\": \"abc\", \"expected\": \"xyz\", \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": \"\", \"expected\": \"x\", \"passed\": false}, {\"check\": \"fixture 1\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.059,"exit_code":1,"observations":[{"actual":"xyz","check":"fixture 2","expected":"xyz","passed":true},{"actual":"","check":"fixture 3","expected":"","passed":true},{"actual":"x","check":"fixture 4","expected":"x","passed":true},{"actual":"","check":"fixture 1","expected":"abc","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 2\", \"actual\": \"xyz\", \"expected\": \"xyz\", \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"fixture 1\", \"actual\": \"\", \"expected\": \"abc\", \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}