FAILURE MAP
← Case archive

FA-8876 / Client state / Open access

Controlled and uncontrolled input ownership: Reset rewrites local state owned by a controlled input · case 01

Reset rewrites local state owned by a controlled input.

Verified by executionVariant 1 · 9 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The reset ownership operation uses `if event == 'reset':` where the contract requires `if event == 'reset' and not controlled:`.

VERIFIED REPAIR

Implement the reset ownership operation as `if event == 'reset' and not controlled:`.

Unsuccessful approach: Resetting only controlled inputs breaks uncontrolled defaults.

Case contract

None alone signals uncontrolled; defaults initialize only on mount/reset; controlled values stay prop-owned while proposed changes are emitted; uncontrolled changes update local state.

Why this case matters

A deterministic model of controlled and uncontrolled input ownership; this isolates one interface invariant without requiring a browser.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(prop, local, default, event, incoming, mounted):
    controlled = prop is not None
    if not mounted: local = default
    if event == 'input':
        if not controlled: local = incoming
        notification = incoming
    else: notification = None
    if event == 'reset': local = default
    visible = prop if controlled else local
    return (visible, local, notification)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('empty controlled', solve('', 'draft', 'default', 'none', None, True), ('', 'draft', None))
check('mounted', solve(None, 'edited', 'default', 'none', None, True), ('edited', 'edited', None))
check('mount', solve(None, None, 'default', 'none', None, False), ('default', 'default', None))
check('controlled event', solve('old', 'local', 'default', 'input', 'new', True), ('old', 'local', 'new'))
check('uncontrolled event', solve(None, 'local', 'default', 'input', 'new', True), ('new', 'new', 'new'))
check('controlled reset', solve('old', 'local', 'default', 'reset', None, True), ('old', 'local', None))
check('uncontrolled reset', solve(None, 'local', 'default', 'reset', None, True), ('default', 'default', None))
check('parameterized proposed value', solve('old','local','default','input',str(N),True), ('old','local',str(N)))
for repetition in range(N):
    check('repeat uncontrolled reset', solve(None, 'local', 'default', 'reset', None, True), ('default', 'default', None))
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
empty controlled['', 'draft', None]['', 'draft', None]Passed
mounted['edited', 'edited', None]['edited', 'edited', None]Passed
mount['default', 'default', None]['default', 'default', None]Passed
controlled event['old', 'local', 'new']['old', 'local', 'new']Passed
uncontrolled event['new', 'new', 'new']['new', 'new', 'new']Passed
controlled reset['old', 'default', None]['old', 'local', None]Failed
uncontrolled reset['default', 'default', None]['default', 'default', None]Passed
parameterized proposed value['old', 'local', '1']['old', 'local', '1']Passed
repeat uncontrolled reset['default', 'default', None]['default', 'default', None]Passed

SHA-256 / 97ffaa2f93e4ebc1396f9d6be5ac9c5892d7706a4727e0900b70db3afead5940

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(prop, local, default, event, incoming, mounted):
    controlled = prop is not None
    if not mounted: local = default
    if event == 'input':
        if not controlled: local = incoming
        notification = incoming
    else: notification = None
    if event == 'reset' and controlled: local = default
    visible = prop if controlled else local
    return (visible, local, notification)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('empty controlled', solve('', 'draft', 'default', 'none', None, True), ('', 'draft', None))
check('mounted', solve(None, 'edited', 'default', 'none', None, True), ('edited', 'edited', None))
check('mount', solve(None, None, 'default', 'none', None, False), ('default', 'default', None))
check('controlled event', solve('old', 'local', 'default', 'input', 'new', True), ('old', 'local', 'new'))
check('uncontrolled event', solve(None, 'local', 'default', 'input', 'new', True), ('new', 'new', 'new'))
check('controlled reset', solve('old', 'local', 'default', 'reset', None, True), ('old', 'local', None))
check('uncontrolled reset', solve(None, 'local', 'default', 'reset', None, True), ('default', 'default', None))
check('parameterized proposed value', solve('old','local','default','input',str(N),True), ('old','local',str(N)))
for repetition in range(N):
    check('repeat uncontrolled reset', solve(None, 'local', 'default', 'reset', None, True), ('default', 'default', None))
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
empty controlled['', 'draft', None]['', 'draft', None]Passed
mounted['edited', 'edited', None]['edited', 'edited', None]Passed
mount['default', 'default', None]['default', 'default', None]Passed
controlled event['old', 'local', 'new']['old', 'local', 'new']Passed
uncontrolled event['new', 'new', 'new']['new', 'new', 'new']Passed
controlled reset['old', 'default', None]['old', 'local', None]Failed
uncontrolled reset['local', 'local', None]['default', 'default', None]Failed
parameterized proposed value['old', 'local', '1']['old', 'local', '1']Passed
repeat uncontrolled reset['local', 'local', None]['default', 'default', None]Failed

SHA-256 / 7b94b40beab0ea7117a014f7150ba5a9ac7c8394ca835f2e0d06769fbda559f7

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(prop, local, default, event, incoming, mounted):
    controlled = prop is not None
    if not mounted: local = default
    if event == 'input':
        if not controlled: local = incoming
        notification = incoming
    else: notification = None
    if event == 'reset' and not controlled: local = default
    visible = prop if controlled else local
    return (visible, local, notification)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('empty controlled', solve('', 'draft', 'default', 'none', None, True), ('', 'draft', None))
check('mounted', solve(None, 'edited', 'default', 'none', None, True), ('edited', 'edited', None))
check('mount', solve(None, None, 'default', 'none', None, False), ('default', 'default', None))
check('controlled event', solve('old', 'local', 'default', 'input', 'new', True), ('old', 'local', 'new'))
check('uncontrolled event', solve(None, 'local', 'default', 'input', 'new', True), ('new', 'new', 'new'))
check('controlled reset', solve('old', 'local', 'default', 'reset', None, True), ('old', 'local', None))
check('uncontrolled reset', solve(None, 'local', 'default', 'reset', None, True), ('default', 'default', None))
check('parameterized proposed value', solve('old','local','default','input',str(N),True), ('old','local',str(N)))
for repetition in range(N):
    check('repeat uncontrolled reset', solve(None, 'local', 'default', 'reset', None, True), ('default', 'default', None))
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
empty controlled['', 'draft', None]['', 'draft', None]Passed
mounted['edited', 'edited', None]['edited', 'edited', None]Passed
mount['default', 'default', None]['default', 'default', None]Passed
controlled event['old', 'local', 'new']['old', 'local', 'new']Passed
uncontrolled event['new', 'new', 'new']['new', 'new', 'new']Passed
controlled reset['old', 'local', None]['old', 'local', None]Passed
uncontrolled reset['default', 'default', None]['default', 'default', None]Passed
parameterized proposed value['old', 'local', '1']['old', 'local', '1']Passed
repeat uncontrolled reset['default', 'default', None]['default', 'default', None]Passed

SHA-256 / 044bf1425e9ccf3192b50c30d160246d7effd44fbafd16c7e31c2db164649187

Verification & scope

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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:38:25.096703+00:00.

Case digest / 819524b7112a5adc0269024490cbd41d3266fc19667511a77e0c29a7ab01c3da