{"abstract":"A resource observer receives fields that belong to another observer selector.","category":"Client state","checks":6,"contract":"Each cache observer receives only its declared existing fields and is notified only when that projection differs from its own previous snapshot; missing fields differ from explicit null.","evaluation_group":"s3-client-state-cache-observer-field-projections","failed_approach":"The partial repair still violates at least one explicit regression oracle.","family":"s3-client-state-cache-observer-field-projections","id":"FA-24831","implementations":{"attempt":{"sha256":"d0f0e846369dc1010296ceff9f13177618fd30daac90dabb84fb2323ea49334f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(resource, observers, previous):\n    return [(name,{k:resource[k] for k in fields if k in resource}) for name,fields in observers]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('selectors differ', solve({'a':N,'b':2},[('one',['a']),('two',['b'])],{}), [('one',{'a':N}),('two',{'b':2})])\ncheck('unchanged observer suppressed', solve({'a':1},[('one',['a'])],{'one':{'a':1}}), [])\ncheck('empty projection changed', solve({'a':1},[('one',['missing'])],{}), [('one',{})])\ncheck('empty projection stable', solve({},[('one',[])],{'one':{}}), [])\ncheck('missing vs null', solve({'a':None},[('one',['a'])],{'one':{}}), [('one',{'a':None})])\ncheck('no observers', solve({'a':N},[],{}), [])\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":"ea7c7a1e8da3b57e5c9a760b2ee9eea616e07c3b9031bd917a38183c7392418b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(resource, observers, previous):\n    return [(name,dict(resource)) for name,fields in observers]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('selectors differ', solve({'a':N,'b':2},[('one',['a']),('two',['b'])],{}), [('one',{'a':N}),('two',{'b':2})])\ncheck('unchanged observer suppressed', solve({'a':1},[('one',['a'])],{'one':{'a':1}}), [])\ncheck('empty projection changed', solve({'a':1},[('one',['missing'])],{}), [('one',{})])\ncheck('empty projection stable', solve({},[('one',[])],{'one':{}}), [])\ncheck('missing vs null', solve({'a':None},[('one',['a'])],{'one':{}}), [('one',{'a':None})])\ncheck('no observers', solve({'a':N},[],{}), [])\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":"b4bd43db61659c07cca6e936650306e9d1327d6453778faded4a509a48e98a77","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(resource, observers, previous):\n    return [(name,{k:resource[k] for k in fields if k in resource}) for name,fields in observers if {k:resource[k] for k in fields if k in resource}!=previous.get(name)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('selectors differ', solve({'a':N,'b':2},[('one',['a']),('two',['b'])],{}), [('one',{'a':N}),('two',{'b':2})])\ncheck('unchanged observer suppressed', solve({'a':1},[('one',['a'])],{'one':{'a':1}}), [])\ncheck('empty projection changed', solve({'a':1},[('one',['missing'])],{}), [('one',{})])\ncheck('empty projection stable', solve({},[('one',[])],{'one':{}}), [])\ncheck('missing vs null', solve({'a':None},[('one',['a'])],{'one':{}}), [('one',{'a':None})])\ncheck('no observers', solve({'a':N},[],{}), [])\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-cache-observer-field-projections","generated_at":"2026-09-29T14:41:01.209249+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":"Each cache observer receives only its declared existing fields and is notified only when that projection differs from its own previous snapshot; missing fields differ from explicit null.","root_cause":"The faulty implementation violates Each cache observer receives only its declared existing fields and is notified only when that projection differs from its own previous snapshot; missing fields differ from explicit null.","sha256":"b55b9077cf46909841a729c8083c3f2d94132e76a279f73a602c6e579de5b7a2","title":"A resource observer receives fields that belong to another observer selector · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.585,"exit_code":1,"observations":[{"actual":[["one",{"a":1}],["two",{"b":2}]],"check":"selectors differ","expected":[["one",{"a":1}],["two",{"b":2}]],"passed":true},{"actual":[["one",{"a":1}]],"check":"unchanged observer suppressed","expected":[],"passed":false},{"actual":[["one",{}]],"check":"empty projection changed","expected":[["one",{}]],"passed":true},{"actual":[["one",{}]],"check":"empty projection stable","expected":[],"passed":false},{"actual":[["one",{"a":null}]],"check":"missing vs null","expected":[["one",{"a":null}]],"passed":true},{"actual":[],"check":"no observers","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"selectors differ\", \"actual\": [[\"one\", {\"a\": 1}], [\"two\", {\"b\": 2}]], \"expected\": [[\"one\", {\"a\": 1}], [\"two\", {\"b\": 2}]], \"passed\": true}, {\"check\": \"unchanged observer suppressed\", \"actual\": [[\"one\", {\"a\": 1}]], \"expected\": [], \"passed\": false}, {\"check\": \"empty projection changed\", \"actual\": [[\"one\", {}]], \"expected\": [[\"one\", {}]], \"passed\": true}, {\"check\": \"empty projection stable\", \"actual\": [[\"one\", {}]], \"expected\": [], \"passed\": false}, {\"check\": \"missing vs null\", \"actual\": [[\"one\", {\"a\": null}]], \"expected\": [[\"one\", {\"a\": null}]], \"passed\": true}, {\"check\": \"no observers\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.307,"exit_code":1,"observations":[{"actual":[["one",{"a":1,"b":2}],["two",{"a":1,"b":2}]],"check":"selectors differ","expected":[["one",{"a":1}],["two",{"b":2}]],"passed":false},{"actual":[["one",{"a":1}]],"check":"unchanged observer suppressed","expected":[],"passed":false},{"actual":[["one",{"a":1}]],"check":"empty projection changed","expected":[["one",{}]],"passed":false},{"actual":[["one",{}]],"check":"empty projection stable","expected":[],"passed":false},{"actual":[["one",{"a":null}]],"check":"missing vs null","expected":[["one",{"a":null}]],"passed":true},{"actual":[],"check":"no observers","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"selectors differ\", \"actual\": [[\"one\", {\"a\": 1, \"b\": 2}], [\"two\", {\"a\": 1, \"b\": 2}]], \"expected\": [[\"one\", {\"a\": 1}], [\"two\", {\"b\": 2}]], \"passed\": false}, {\"check\": \"unchanged observer suppressed\", \"actual\": [[\"one\", {\"a\": 1}]], \"expected\": [], \"passed\": false}, {\"check\": \"empty projection changed\", \"actual\": [[\"one\", {\"a\": 1}]], \"expected\": [[\"one\", {}]], \"passed\": false}, {\"check\": \"empty projection stable\", \"actual\": [[\"one\", {}]], \"expected\": [], \"passed\": false}, {\"check\": \"missing vs null\", \"actual\": [[\"one\", {\"a\": null}]], \"expected\": [[\"one\", {\"a\": null}]], \"passed\": true}, {\"check\": \"no observers\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.22,"exit_code":0,"observations":[{"actual":[["one",{"a":1}],["two",{"b":2}]],"check":"selectors differ","expected":[["one",{"a":1}],["two",{"b":2}]],"passed":true},{"actual":[],"check":"unchanged observer suppressed","expected":[],"passed":true},{"actual":[["one",{}]],"check":"empty projection changed","expected":[["one",{}]],"passed":true},{"actual":[],"check":"empty projection stable","expected":[],"passed":true},{"actual":[["one",{"a":null}]],"check":"missing vs null","expected":[["one",{"a":null}]],"passed":true},{"actual":[],"check":"no observers","expected":[],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"selectors differ\", \"actual\": [[\"one\", {\"a\": 1}], [\"two\", {\"b\": 2}]], \"expected\": [[\"one\", {\"a\": 1}], [\"two\", {\"b\": 2}]], \"passed\": true}, {\"check\": \"unchanged observer suppressed\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty projection changed\", \"actual\": [[\"one\", {}]], \"expected\": [[\"one\", {}]], \"passed\": true}, {\"check\": \"empty projection stable\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"missing vs null\", \"actual\": [[\"one\", {\"a\": null}]], \"expected\": [[\"one\", {\"a\": null}]], \"passed\": true}, {\"check\": \"no observers\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}