FAILURE MAP
← Case archive

FA-8576 / Form validation / Open access

Constraint validation priority: A value equal to the inclusive maximum is rejected · case 01

A value equal to the inclusive maximum is rejected.

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

ROOT CAUSE

The maximum operation uses `value >= maximum` where the contract requires `value > maximum`.

VERIFIED REPAIR

Implement the maximum operation as `value > maximum`.

Unsuccessful approach: A hardcoded threshold ignores the field maximum.

Case contract

Required checks distinguish blank from zero; malformed input precedes numeric checks; optional blank is valid; min/max are inclusive; pattern applies last.

Why this case matters

A deterministic model of constraint validation priority; 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(required, value, bad_input, minimum, maximum, pattern_ok):
    if required and value == '': return 'required'
    if bad_input: return 'bad-input'
    if value == '': return None
    if minimum is not None and value < minimum: return 'underflow'
    if maximum is not None and value >= maximum: return 'overflow'
    if not pattern_ok: return 'pattern'
    return None
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('zero', solve(True, 0, False, 0, 5, True), None)
check('optional blank', solve(False, '', False, 1, 5, False), None)
check('required blank', solve(True, '', False, None, None, True), 'required')
check('bad', solve(False, 'oops', True, None, None, True), 'bad-input')
check('at min', solve(False, 2, False, 2, 5, True), None)
check('below min', solve(False, 1, False, 2, 5, True), 'underflow')
check('at max', solve(False, 5, False, 2, 5, True), None)
check('above max', solve(False, 6, False, 2, 5, True), 'overflow')
check('parameterized minimum', solve(False,N,False,N,N+10,True), None)
for repetition in range(N):
    check('repeat above max', solve(False, 6, False, 2, 5, True), 'overflow')
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
zeroNoneNonePassed
optional blankNoneNonePassed
required blankrequiredrequiredPassed
badbad-inputbad-inputPassed
at minNoneNonePassed
below minunderflowunderflowPassed
at maxoverflowNoneFailed
above maxoverflowoverflowPassed
parameterized minimumNoneNonePassed
repeat above maxoverflowoverflowPassed

SHA-256 / 12cd9699e8f23d66b64c2bab31a9fbf305e72a33c200ca915e501e60e23e129f

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(required, value, bad_input, minimum, maximum, pattern_ok):
    if required and value == '': return 'required'
    if bad_input: return 'bad-input'
    if value == '': return None
    if minimum is not None and value < minimum: return 'underflow'
    if maximum is not None and value > 100: return 'overflow'
    if not pattern_ok: return 'pattern'
    return None
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('zero', solve(True, 0, False, 0, 5, True), None)
check('optional blank', solve(False, '', False, 1, 5, False), None)
check('required blank', solve(True, '', False, None, None, True), 'required')
check('bad', solve(False, 'oops', True, None, None, True), 'bad-input')
check('at min', solve(False, 2, False, 2, 5, True), None)
check('below min', solve(False, 1, False, 2, 5, True), 'underflow')
check('at max', solve(False, 5, False, 2, 5, True), None)
check('above max', solve(False, 6, False, 2, 5, True), 'overflow')
check('parameterized minimum', solve(False,N,False,N,N+10,True), None)
for repetition in range(N):
    check('repeat above max', solve(False, 6, False, 2, 5, True), 'overflow')
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
zeroNoneNonePassed
optional blankNoneNonePassed
required blankrequiredrequiredPassed
badbad-inputbad-inputPassed
at minNoneNonePassed
below minunderflowunderflowPassed
at maxNoneNonePassed
above maxNoneoverflowFailed
parameterized minimumNoneNonePassed
repeat above maxNoneoverflowFailed

SHA-256 / 2bae12e83f125527cb8faea3b1b6b53c3b48cd48a990f8322f37b1e283762d8f

3 / The verified repair

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

N = 1
observations = []
def solve(required, value, bad_input, minimum, maximum, pattern_ok):
    if required and value == '': return 'required'
    if bad_input: return 'bad-input'
    if value == '': return None
    if minimum is not None and value < minimum: return 'underflow'
    if maximum is not None and value > maximum: return 'overflow'
    if not pattern_ok: return 'pattern'
    return None
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('zero', solve(True, 0, False, 0, 5, True), None)
check('optional blank', solve(False, '', False, 1, 5, False), None)
check('required blank', solve(True, '', False, None, None, True), 'required')
check('bad', solve(False, 'oops', True, None, None, True), 'bad-input')
check('at min', solve(False, 2, False, 2, 5, True), None)
check('below min', solve(False, 1, False, 2, 5, True), 'underflow')
check('at max', solve(False, 5, False, 2, 5, True), None)
check('above max', solve(False, 6, False, 2, 5, True), 'overflow')
check('parameterized minimum', solve(False,N,False,N,N+10,True), None)
for repetition in range(N):
    check('repeat above max', solve(False, 6, False, 2, 5, True), 'overflow')
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
zeroNoneNonePassed
optional blankNoneNonePassed
required blankrequiredrequiredPassed
badbad-inputbad-inputPassed
at minNoneNonePassed
below minunderflowunderflowPassed
at maxNoneNonePassed
above maxoverflowoverflowPassed
parameterized minimumNoneNonePassed
repeat above maxoverflowoverflowPassed

SHA-256 / d48f1d3a49b77bae2a85dd0bee201431d4f18ce57f18f1bf2721df713c5a4c45

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

Case digest / 30043754c443c28a2a5f688962d4197f54d6a49133a67b256f89f15aecc16a31