FAILURE MAP
← Case archive

FA-8486 / Form submission / Open access

Successful form control collection: Unnamed controls create empty-name form entries · case 01

Unnamed controls create empty-name form entries.

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

ROOT CAUSE

The unnamed operation uses `if False: continue` where the contract requires `if not c['name']: continue`.

VERIFIED REPAIR

Implement the unnamed operation as `if not c['name']: continue`.

Unsuccessful approach: Rejecting named fields prevents normal form submission.

Case contract

Submit enabled named controls, checked choices and only the actual submitter; emit one ordered pair per selected multiple option without value deduplication.

Why this case matters

A deterministic model of successful form control collection; 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(controls, submitter):
    pairs = []
    for c in controls:
        if c['disabled']: continue
        if False: continue
        if c['type'] in ('checkbox', 'radio') and not c['checked']: continue
        if c['type'] == 'submit' and c['id'] != submitter: continue
        values = c['value'] if c['type'] == 'multiple' else [c['value']]
        pairs.extend((c['name'], value) for value in values)
    return pairs
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('disabled', solve([dict(disabled=True,name='a',type='text',checked=False,id='a',value='x')], None), [])
check('unnamed', solve([dict(disabled=False,name='',type='text',checked=False,id='a',value='x')], None), [])
check('unchecked', solve([dict(disabled=False,name='a',type='checkbox',checked=False,id='a',value='x')], None), [])
check('checked', solve([dict(disabled=False,name='a',type='checkbox',checked=True,id='a',value='x')], None), [('a', 'x')])
check('other submit', solve([dict(disabled=False,name='a',type='submit',checked=False,id='other',value='x')], 'actual'), [])
check('actual submit', solve([dict(disabled=False,name='a',type='submit',checked=False,id='actual',value='x')], 'actual'), [('a', 'x')])
check('multiple', solve([dict(disabled=False,name='a',type='multiple',checked=False,id='a',value=['x','x','y'])], None), [('a', 'x'), ('a', 'x'), ('a', 'y')])
check('parameterized submission value', solve([dict(disabled=False,name='a',type='text',checked=False,id='a',value=N)],None), [('a',N)])
for repetition in range(N):
    check('repeat multiple', solve([dict(disabled=False,name='a',type='multiple',checked=False,id='a',value=['x','x','y'])], None), [('a', 'x'), ('a', 'x'), ('a', 'y')])
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
disabled[][]Passed
unnamed[['', 'x']][]Failed
unchecked[][]Passed
checked[['a', 'x']][['a', 'x']]Passed
other submit[][]Passed
actual submit[['a', 'x']][['a', 'x']]Passed
multiple[['a', 'x'], ['a', 'x'], ['a', 'y']][['a', 'x'], ['a', 'x'], ['a', 'y']]Passed
parameterized submission value[['a', 1]][['a', 1]]Passed
repeat multiple[['a', 'x'], ['a', 'x'], ['a', 'y']][['a', 'x'], ['a', 'x'], ['a', 'y']]Passed

SHA-256 / 76116f3be0427f153a82a61484c29220540ad85a1a89d9a14dc131a5823a98d1

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(controls, submitter):
    pairs = []
    for c in controls:
        if c['disabled']: continue
        if c['name']: continue
        if c['type'] in ('checkbox', 'radio') and not c['checked']: continue
        if c['type'] == 'submit' and c['id'] != submitter: continue
        values = c['value'] if c['type'] == 'multiple' else [c['value']]
        pairs.extend((c['name'], value) for value in values)
    return pairs
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('disabled', solve([dict(disabled=True,name='a',type='text',checked=False,id='a',value='x')], None), [])
check('unnamed', solve([dict(disabled=False,name='',type='text',checked=False,id='a',value='x')], None), [])
check('unchecked', solve([dict(disabled=False,name='a',type='checkbox',checked=False,id='a',value='x')], None), [])
check('checked', solve([dict(disabled=False,name='a',type='checkbox',checked=True,id='a',value='x')], None), [('a', 'x')])
check('other submit', solve([dict(disabled=False,name='a',type='submit',checked=False,id='other',value='x')], 'actual'), [])
check('actual submit', solve([dict(disabled=False,name='a',type='submit',checked=False,id='actual',value='x')], 'actual'), [('a', 'x')])
check('multiple', solve([dict(disabled=False,name='a',type='multiple',checked=False,id='a',value=['x','x','y'])], None), [('a', 'x'), ('a', 'x'), ('a', 'y')])
check('parameterized submission value', solve([dict(disabled=False,name='a',type='text',checked=False,id='a',value=N)],None), [('a',N)])
for repetition in range(N):
    check('repeat multiple', solve([dict(disabled=False,name='a',type='multiple',checked=False,id='a',value=['x','x','y'])], None), [('a', 'x'), ('a', 'x'), ('a', 'y')])
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
disabled[][]Passed
unnamed[['', 'x']][]Failed
unchecked[][]Passed
checked[][['a', 'x']]Failed
other submit[][]Passed
actual submit[][['a', 'x']]Failed
multiple[][['a', 'x'], ['a', 'x'], ['a', 'y']]Failed
parameterized submission value[][['a', 1]]Failed
repeat multiple[][['a', 'x'], ['a', 'x'], ['a', 'y']]Failed

SHA-256 / a23bcf93f6b43f73e1db8f4074aaa303b92e1a31c57b6a8d3e870399ba068c3e

3 / The verified repair

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

N = 1
observations = []
def solve(controls, submitter):
    pairs = []
    for c in controls:
        if c['disabled']: continue
        if not c['name']: continue
        if c['type'] in ('checkbox', 'radio') and not c['checked']: continue
        if c['type'] == 'submit' and c['id'] != submitter: continue
        values = c['value'] if c['type'] == 'multiple' else [c['value']]
        pairs.extend((c['name'], value) for value in values)
    return pairs
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('disabled', solve([dict(disabled=True,name='a',type='text',checked=False,id='a',value='x')], None), [])
check('unnamed', solve([dict(disabled=False,name='',type='text',checked=False,id='a',value='x')], None), [])
check('unchecked', solve([dict(disabled=False,name='a',type='checkbox',checked=False,id='a',value='x')], None), [])
check('checked', solve([dict(disabled=False,name='a',type='checkbox',checked=True,id='a',value='x')], None), [('a', 'x')])
check('other submit', solve([dict(disabled=False,name='a',type='submit',checked=False,id='other',value='x')], 'actual'), [])
check('actual submit', solve([dict(disabled=False,name='a',type='submit',checked=False,id='actual',value='x')], 'actual'), [('a', 'x')])
check('multiple', solve([dict(disabled=False,name='a',type='multiple',checked=False,id='a',value=['x','x','y'])], None), [('a', 'x'), ('a', 'x'), ('a', 'y')])
check('parameterized submission value', solve([dict(disabled=False,name='a',type='text',checked=False,id='a',value=N)],None), [('a',N)])
for repetition in range(N):
    check('repeat multiple', solve([dict(disabled=False,name='a',type='multiple',checked=False,id='a',value=['x','x','y'])], None), [('a', 'x'), ('a', 'x'), ('a', 'y')])
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
disabled[][]Passed
unnamed[][]Passed
unchecked[][]Passed
checked[['a', 'x']][['a', 'x']]Passed
other submit[][]Passed
actual submit[['a', 'x']][['a', 'x']]Passed
multiple[['a', 'x'], ['a', 'x'], ['a', 'y']][['a', 'x'], ['a', 'x'], ['a', 'y']]Passed
parameterized submission value[['a', 1]][['a', 1]]Passed
repeat multiple[['a', 'x'], ['a', 'x'], ['a', 'y']][['a', 'x'], ['a', 'x'], ['a', 'y']]Passed

SHA-256 / 847e1bce37bb83205226fee1e23a56c7104d6a89e068f21e74939db3064a37d5

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:21.811149+00:00.

Case digest / f3602c513fdc94f9db43d86f0a5f50343a9796068e54f80fdd1be36294f21e97