{"abstract":"Editing keeps a stale completed submission state.","category":"Form submission","checks":8,"contract":"A duplicate pending submit preserves pending; invalid submit retains errors; success clears errors; failure installs result errors; editing resets status and stale errors.","contract_signature":"state, errors, event, result","evaluation_group":"xi-submit-state","failed_approach":"Clearing state without errors retains messages for old values.","family":"xi-submit-state-edit","id":"FA-8551","implementations":{"attempt":{"sha256":"54d1d3cf758b8bb7e63412f4c7597dbb83d1c03ec7019abb014af44bb4e84fc1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(state, errors, event, result):\n    if event == 'submit':\n        if state == 'submitting': return (state, errors)\n        if errors: return ('invalid', errors)\n        return ('submitting', {})\n    if event == 'success': return ('succeeded', {})\n    if event == 'failure': return ('failed', result)\n    if event == 'edit': return ('idle', errors)\n    return (state, errors)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('duplicate', solve('submitting', {}, 'submit', None), ('submitting', {}))\ncheck('invalid', solve('idle', {'a':'required'}, 'submit', None), ('invalid', {'a': 'required'}))\ncheck('valid', solve('idle', {}, 'submit', None), ('submitting', {}))\ncheck('success', solve('submitting', {'old':'stale'}, 'success', None), ('succeeded', {}))\ncheck('failure', solve('submitting', {'old':'stale'}, 'failure', {'a':'conflict'}), ('failed', {'a': 'conflict'}))\ncheck('edit', solve('failed', {'a':'stale'}, 'edit', None), ('idle', {}))\ncheck('parameterized failure details', solve('submitting', {}, 'failure', {'field':str(N)}), ('failed',{'field':str(N)}))\nfor repetition in range(N):\n    check('repeat edit', solve('failed', {'a':'stale'}, 'edit', None), ('idle', {}))\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":"da6baebc864f1ebb62b03cec437262f34ade262ab78ff7b0016d620f5e8c77cb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(state, errors, event, result):\n    if event == 'submit':\n        if state == 'submitting': return (state, errors)\n        if errors: return ('invalid', errors)\n        return ('submitting', {})\n    if event == 'success': return ('succeeded', {})\n    if event == 'failure': return ('failed', result)\n    if event == 'edit': return (state, errors)\n    return (state, errors)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('duplicate', solve('submitting', {}, 'submit', None), ('submitting', {}))\ncheck('invalid', solve('idle', {'a':'required'}, 'submit', None), ('invalid', {'a': 'required'}))\ncheck('valid', solve('idle', {}, 'submit', None), ('submitting', {}))\ncheck('success', solve('submitting', {'old':'stale'}, 'success', None), ('succeeded', {}))\ncheck('failure', solve('submitting', {'old':'stale'}, 'failure', {'a':'conflict'}), ('failed', {'a': 'conflict'}))\ncheck('edit', solve('failed', {'a':'stale'}, 'edit', None), ('idle', {}))\ncheck('parameterized failure details', solve('submitting', {}, 'failure', {'field':str(N)}), ('failed',{'field':str(N)}))\nfor repetition in range(N):\n    check('repeat edit', solve('failed', {'a':'stale'}, 'edit', None), ('idle', {}))\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 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":"xi-submit-state-edit","generated_at":"2026-09-29T14:38:22.371447+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic model of submission state transitions; this isolates one interface invariant without requiring a browser.","root_cause":"The edit operation uses `if event == 'edit': return (state, errors)` where the contract requires `if event == 'edit': return ('idle', {})`.","sha256":"cbcbceea91422b69f8f2c10a152c573e87c13a7b42c799bf3daeb06e1de04123","title":"Submission state transitions: Editing keeps a stale completed submission state · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":41.564,"exit_code":1,"observations":[{"actual":["submitting",{}],"check":"duplicate","expected":["submitting",{}],"passed":true},{"actual":["invalid",{"a":"required"}],"check":"invalid","expected":["invalid",{"a":"required"}],"passed":true},{"actual":["submitting",{}],"check":"valid","expected":["submitting",{}],"passed":true},{"actual":["succeeded",{}],"check":"success","expected":["succeeded",{}],"passed":true},{"actual":["failed",{"a":"conflict"}],"check":"failure","expected":["failed",{"a":"conflict"}],"passed":true},{"actual":["idle",{"a":"stale"}],"check":"edit","expected":["idle",{}],"passed":false},{"actual":["failed",{"field":"1"}],"check":"parameterized failure details","expected":["failed",{"field":"1"}],"passed":true},{"actual":["idle",{"a":"stale"}],"check":"repeat edit","expected":["idle",{}],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"duplicate\", \"actual\": [\"submitting\", {}], \"expected\": [\"submitting\", {}], \"passed\": true}, {\"check\": \"invalid\", \"actual\": [\"invalid\", {\"a\": \"required\"}], \"expected\": [\"invalid\", {\"a\": \"required\"}], \"passed\": true}, {\"check\": \"valid\", \"actual\": [\"submitting\", {}], \"expected\": [\"submitting\", {}], \"passed\": true}, {\"check\": \"success\", \"actual\": [\"succeeded\", {}], \"expected\": [\"succeeded\", {}], \"passed\": true}, {\"check\": \"failure\", \"actual\": [\"failed\", {\"a\": \"conflict\"}], \"expected\": [\"failed\", {\"a\": \"conflict\"}], \"passed\": true}, {\"check\": \"edit\", \"actual\": [\"idle\", {\"a\": \"stale\"}], \"expected\": [\"idle\", {}], \"passed\": false}, {\"check\": \"parameterized failure details\", \"actual\": [\"failed\", {\"field\": \"1\"}], \"expected\": [\"failed\", {\"field\": \"1\"}], \"passed\": true}, {\"check\": \"repeat edit\", \"actual\": [\"idle\", {\"a\": \"stale\"}], \"expected\": [\"idle\", {}], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.891,"exit_code":1,"observations":[{"actual":["submitting",{}],"check":"duplicate","expected":["submitting",{}],"passed":true},{"actual":["invalid",{"a":"required"}],"check":"invalid","expected":["invalid",{"a":"required"}],"passed":true},{"actual":["submitting",{}],"check":"valid","expected":["submitting",{}],"passed":true},{"actual":["succeeded",{}],"check":"success","expected":["succeeded",{}],"passed":true},{"actual":["failed",{"a":"conflict"}],"check":"failure","expected":["failed",{"a":"conflict"}],"passed":true},{"actual":["failed",{"a":"stale"}],"check":"edit","expected":["idle",{}],"passed":false},{"actual":["failed",{"field":"1"}],"check":"parameterized failure details","expected":["failed",{"field":"1"}],"passed":true},{"actual":["failed",{"a":"stale"}],"check":"repeat edit","expected":["idle",{}],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"duplicate\", \"actual\": [\"submitting\", {}], \"expected\": [\"submitting\", {}], \"passed\": true}, {\"check\": \"invalid\", \"actual\": [\"invalid\", {\"a\": \"required\"}], \"expected\": [\"invalid\", {\"a\": \"required\"}], \"passed\": true}, {\"check\": \"valid\", \"actual\": [\"submitting\", {}], \"expected\": [\"submitting\", {}], \"passed\": true}, {\"check\": \"success\", \"actual\": [\"succeeded\", {}], \"expected\": [\"succeeded\", {}], \"passed\": true}, {\"check\": \"failure\", \"actual\": [\"failed\", {\"a\": \"conflict\"}], \"expected\": [\"failed\", {\"a\": \"conflict\"}], \"passed\": true}, {\"check\": \"edit\", \"actual\": [\"failed\", {\"a\": \"stale\"}], \"expected\": [\"idle\", {}], \"passed\": false}, {\"check\": \"parameterized failure details\", \"actual\": [\"failed\", {\"field\": \"1\"}], \"expected\": [\"failed\", {\"field\": \"1\"}], \"passed\": true}, {\"check\": \"repeat edit\", \"actual\": [\"failed\", {\"a\": \"stale\"}], \"expected\": [\"idle\", {}], \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}