{"abstract":"A child loader is started before its parent route data is available.","category":"Client state","checks":6,"contract":"A route loader starts only after its immediate parent data is resolved; settled loaders do not restart, and siblings preserve declaration order.","evaluation_group":"s3-client-state-route-loader-dependency-order","failed_approach":"The partial repair still violates at least one explicit regression oracle.","family":"s3-client-state-route-loader-dependency-order","id":"FA-24741","implementations":{"attempt":{"sha256":"c932356756ff99a8bc854bb95a515169223b8871c35ed2efee6207a6d0986d7f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(routes, resolved):\n    return [key for key,parent in routes if key not in resolved and parent is None]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('root ready only', solve([('root',None),('child','root')],[]), ['root'])\ncheck('child after parent', solve([('root',None),('child','root')],['root']), ['child'])\ncheck('siblings', solve([('a','root'),('b','root')],['root']), ['a','b'])\ncheck('all settled', solve([('a',None)],['a']), [])\ncheck('missing parent', solve([('a','missing')],[]), [])\ncheck('parameterized chain', solve([(str(i),None if i==0 else str(i-1)) for i in range(N+2)],[str(i) for i in range(N)]), [str(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":"06ac6554abd65e6e13d31884777802dd3b75e4c7b19a2b9e0942e261f3a303e0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(routes, resolved):\n    return [key for key,parent in routes if key not in resolved]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('root ready only', solve([('root',None),('child','root')],[]), ['root'])\ncheck('child after parent', solve([('root',None),('child','root')],['root']), ['child'])\ncheck('siblings', solve([('a','root'),('b','root')],['root']), ['a','b'])\ncheck('all settled', solve([('a',None)],['a']), [])\ncheck('missing parent', solve([('a','missing')],[]), [])\ncheck('parameterized chain', solve([(str(i),None if i==0 else str(i-1)) for i in range(N+2)],[str(i) for i in range(N)]), [str(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":"cd2bceebff51ef53a128fef9bc45af9eb58556121f53894221579b51b364b593","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(routes, resolved):\n    return [key for key,parent in routes if key not in resolved and (parent is None or parent in resolved)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('root ready only', solve([('root',None),('child','root')],[]), ['root'])\ncheck('child after parent', solve([('root',None),('child','root')],['root']), ['child'])\ncheck('siblings', solve([('a','root'),('b','root')],['root']), ['a','b'])\ncheck('all settled', solve([('a',None)],['a']), [])\ncheck('missing parent', solve([('a','missing')],[]), [])\ncheck('parameterized chain', solve([(str(i),None if i==0 else str(i-1)) for i in range(N+2)],[str(i) for i in range(N)]), [str(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-route-loader-dependency-order","generated_at":"2026-09-29T14:41:00.332076+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":"A route loader starts only after its immediate parent data is resolved; settled loaders do not restart, and siblings preserve declaration order.","root_cause":"The faulty implementation violates A route loader starts only after its immediate parent data is resolved; settled loaders do not restart, and siblings preserve declaration order.","sha256":"ed46b72f683d3eb7d4f876ec5b01f5dc33369a9c18e14df0c3f0752dec7abca6","title":"A child loader is started before its parent route data is available · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.116,"exit_code":1,"observations":[{"actual":["root"],"check":"root ready only","expected":["root"],"passed":true},{"actual":[],"check":"child after parent","expected":["child"],"passed":false},{"actual":[],"check":"siblings","expected":["a","b"],"passed":false},{"actual":[],"check":"all settled","expected":[],"passed":true},{"actual":[],"check":"missing parent","expected":[],"passed":true},{"actual":[],"check":"parameterized chain","expected":["1"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"root ready only\", \"actual\": [\"root\"], \"expected\": [\"root\"], \"passed\": true}, {\"check\": \"child after parent\", \"actual\": [], \"expected\": [\"child\"], \"passed\": false}, {\"check\": \"siblings\", \"actual\": [], \"expected\": [\"a\", \"b\"], \"passed\": false}, {\"check\": \"all settled\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"missing parent\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"parameterized chain\", \"actual\": [], \"expected\": [\"1\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.778,"exit_code":1,"observations":[{"actual":["root","child"],"check":"root ready only","expected":["root"],"passed":false},{"actual":["child"],"check":"child after parent","expected":["child"],"passed":true},{"actual":["a","b"],"check":"siblings","expected":["a","b"],"passed":true},{"actual":[],"check":"all settled","expected":[],"passed":true},{"actual":["a"],"check":"missing parent","expected":[],"passed":false},{"actual":["1","2"],"check":"parameterized chain","expected":["1"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"root ready only\", \"actual\": [\"root\", \"child\"], \"expected\": [\"root\"], \"passed\": false}, {\"check\": \"child after parent\", \"actual\": [\"child\"], \"expected\": [\"child\"], \"passed\": true}, {\"check\": \"siblings\", \"actual\": [\"a\", \"b\"], \"expected\": [\"a\", \"b\"], \"passed\": true}, {\"check\": \"all settled\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"missing parent\", \"actual\": [\"a\"], \"expected\": [], \"passed\": false}, {\"check\": \"parameterized chain\", \"actual\": [\"1\", \"2\"], \"expected\": [\"1\"], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.238,"exit_code":0,"observations":[{"actual":["root"],"check":"root ready only","expected":["root"],"passed":true},{"actual":["child"],"check":"child after parent","expected":["child"],"passed":true},{"actual":["a","b"],"check":"siblings","expected":["a","b"],"passed":true},{"actual":[],"check":"all settled","expected":[],"passed":true},{"actual":[],"check":"missing parent","expected":[],"passed":true},{"actual":["1"],"check":"parameterized chain","expected":["1"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"root ready only\", \"actual\": [\"root\"], \"expected\": [\"root\"], \"passed\": true}, {\"check\": \"child after parent\", \"actual\": [\"child\"], \"expected\": [\"child\"], \"passed\": true}, {\"check\": \"siblings\", \"actual\": [\"a\", \"b\"], \"expected\": [\"a\", \"b\"], \"passed\": true}, {\"check\": \"all settled\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"missing parent\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"parameterized chain\", \"actual\": [\"1\"], \"expected\": [\"1\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}