{"abstract":"Preference reset is serialized as a null assignment instead of removing the override.","category":"Client state","checks":6,"contract":"Device preference patches explicitly remove absent overrides and set added or type/value-changed overrides. Null remains a set value; removals precede sets in each mapping insertion order.","evaluation_group":"s3-client-state-preference-delta-encoding","failed_approach":"The partial repair still violates at least one explicit regression oracle.","family":"s3-client-state-preference-delta-encoding","id":"FA-24786","implementations":{"attempt":{"sha256":"f0e21d411f58db92c5c4aa633cea4f2954b89f75e3e6e32fbdd4091f290fce41","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(before, after):\n    return [('set',k,v) for k,v in after.items() if before.get(k)!=v]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('delete override', solve({'theme':'dark'},{}), [('remove','theme')])\ncheck('explicit null set', solve({}, {'theme':None}), [('set','theme',None)])\ncheck('false vs zero', solve({'size':False},{'size':0}), [('set','size',0)])\ncheck('unchanged', solve({'size':N},{'size':N}), [])\ncheck('new value', solve({'size':1},{'size':N+1}), [('set','size',N+1)])\ncheck('mixed removals additions', solve({'a':1,'b':2},{'b':2,'c':3}), [('remove','a'),('set','c',3)])\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":"505214954fc4affdee17043577b789035aa9d2f4d780ccf90c8d94fd2ba09687","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(before, after):\n    return [('set',k,after.get(k)) for k in before if before[k]!=after.get(k)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('delete override', solve({'theme':'dark'},{}), [('remove','theme')])\ncheck('explicit null set', solve({}, {'theme':None}), [('set','theme',None)])\ncheck('false vs zero', solve({'size':False},{'size':0}), [('set','size',0)])\ncheck('unchanged', solve({'size':N},{'size':N}), [])\ncheck('new value', solve({'size':1},{'size':N+1}), [('set','size',N+1)])\ncheck('mixed removals additions', solve({'a':1,'b':2},{'b':2,'c':3}), [('remove','a'),('set','c',3)])\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":"7a3d4116739c2b4de9655509169cb604e74cb3a963f0b841f764ae89e1626d5b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(before, after):\n    return [('remove',k) for k in before if k not in after]+[('set',k,v) for k,v in after.items() if k not in before or type(before[k])!=type(v) or before[k]!=v]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('delete override', solve({'theme':'dark'},{}), [('remove','theme')])\ncheck('explicit null set', solve({}, {'theme':None}), [('set','theme',None)])\ncheck('false vs zero', solve({'size':False},{'size':0}), [('set','size',0)])\ncheck('unchanged', solve({'size':N},{'size':N}), [])\ncheck('new value', solve({'size':1},{'size':N+1}), [('set','size',N+1)])\ncheck('mixed removals additions', solve({'a':1,'b':2},{'b':2,'c':3}), [('remove','a'),('set','c',3)])\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":"This models the stated application policy only; no browser or framework conformance is claimed. 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-client-state-preference-delta-encoding","generated_at":"2026-09-29T14:41:00.689296+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A bounded offline client-state transition with explicit lifecycle inputs.","repair":"Device preference patches explicitly remove absent overrides and set added or type/value-changed overrides. Null remains a set value; removals precede sets in each mapping insertion order.","root_cause":"The faulty implementation violates Device preference patches explicitly remove absent overrides and set added or type/value-changed overrides. Null remains a set value; removals precede sets in each mapping insertion order.","sha256":"038768e702e15eeeb9387736b2e93063dfb46ee298962ec72f72fc2a9e91dc7d","title":"Preference reset is serialized as a null assignment instead of removing the override · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.796,"exit_code":1,"observations":[{"actual":[],"check":"delete override","expected":[["remove","theme"]],"passed":false},{"actual":[],"check":"explicit null set","expected":[["set","theme",null]],"passed":false},{"actual":[],"check":"false vs zero","expected":[["set","size",0]],"passed":false},{"actual":[],"check":"unchanged","expected":[],"passed":true},{"actual":[["set","size",2]],"check":"new value","expected":[["set","size",2]],"passed":true},{"actual":[["set","c",3]],"check":"mixed removals additions","expected":[["remove","a"],["set","c",3]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"delete override\", \"actual\": [], \"expected\": [[\"remove\", \"theme\"]], \"passed\": false}, {\"check\": \"explicit null set\", \"actual\": [], \"expected\": [[\"set\", \"theme\", null]], \"passed\": false}, {\"check\": \"false vs zero\", \"actual\": [], \"expected\": [[\"set\", \"size\", 0]], \"passed\": false}, {\"check\": \"unchanged\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"new value\", \"actual\": [[\"set\", \"size\", 2]], \"expected\": [[\"set\", \"size\", 2]], \"passed\": true}, {\"check\": \"mixed removals additions\", \"actual\": [[\"set\", \"c\", 3]], \"expected\": [[\"remove\", \"a\"], [\"set\", \"c\", 3]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.906,"exit_code":1,"observations":[{"actual":[["set","theme",null]],"check":"delete override","expected":[["remove","theme"]],"passed":false},{"actual":[],"check":"explicit null set","expected":[["set","theme",null]],"passed":false},{"actual":[],"check":"false vs zero","expected":[["set","size",0]],"passed":false},{"actual":[],"check":"unchanged","expected":[],"passed":true},{"actual":[["set","size",2]],"check":"new value","expected":[["set","size",2]],"passed":true},{"actual":[["set","a",null]],"check":"mixed removals additions","expected":[["remove","a"],["set","c",3]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"delete override\", \"actual\": [[\"set\", \"theme\", null]], \"expected\": [[\"remove\", \"theme\"]], \"passed\": false}, {\"check\": \"explicit null set\", \"actual\": [], \"expected\": [[\"set\", \"theme\", null]], \"passed\": false}, {\"check\": \"false vs zero\", \"actual\": [], \"expected\": [[\"set\", \"size\", 0]], \"passed\": false}, {\"check\": \"unchanged\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"new value\", \"actual\": [[\"set\", \"size\", 2]], \"expected\": [[\"set\", \"size\", 2]], \"passed\": true}, {\"check\": \"mixed removals additions\", \"actual\": [[\"set\", \"a\", null]], \"expected\": [[\"remove\", \"a\"], [\"set\", \"c\", 3]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.883,"exit_code":0,"observations":[{"actual":[["remove","theme"]],"check":"delete override","expected":[["remove","theme"]],"passed":true},{"actual":[["set","theme",null]],"check":"explicit null set","expected":[["set","theme",null]],"passed":true},{"actual":[["set","size",0]],"check":"false vs zero","expected":[["set","size",0]],"passed":true},{"actual":[],"check":"unchanged","expected":[],"passed":true},{"actual":[["set","size",2]],"check":"new value","expected":[["set","size",2]],"passed":true},{"actual":[["remove","a"],["set","c",3]],"check":"mixed removals additions","expected":[["remove","a"],["set","c",3]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"delete override\", \"actual\": [[\"remove\", \"theme\"]], \"expected\": [[\"remove\", \"theme\"]], \"passed\": true}, {\"check\": \"explicit null set\", \"actual\": [[\"set\", \"theme\", null]], \"expected\": [[\"set\", \"theme\", null]], \"passed\": true}, {\"check\": \"false vs zero\", \"actual\": [[\"set\", \"size\", 0]], \"expected\": [[\"set\", \"size\", 0]], \"passed\": true}, {\"check\": \"unchanged\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"new value\", \"actual\": [[\"set\", \"size\", 2]], \"expected\": [[\"set\", \"size\", 2]], \"passed\": true}, {\"check\": \"mixed removals additions\", \"actual\": [[\"remove\", \"a\"], [\"set\", \"c\", 3]], \"expected\": [[\"remove\", \"a\"], [\"set\", \"c\", 3]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}