{"abstract":"Leaves implicit context visible when from-None suppression was requested and changes the required Python-language result.","category":"Exception flow","checks":4,"contract":"Wrap ValueError in RuntimeError with implicit, explicit, or from-None chaining. Return [error type,cause type or None,context type or None,suppress-context flag]. Suppressing displayed context does not erase __context__. Inputs use the finite Python types shown in the fixtures. An error string denotes the specified caught exception, not an unhandled process failure.","evaluation_group":"xl-exception-chaining-metadata","failed_approach":"The alternative still fails because it turns implicit context into an explicit cause.","family":"xl-exception-chaining-metadata-suppression-omitted","id":"FA-5236","implementations":{"attempt":{"sha256":"8bc2008a7e2853a46b3e7861407038d997fb6b40cbc7a931fa098bb87b2158e5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(mode):\n    try:\n        try:\n            raise ValueError('original')\n        except ValueError as original:\n            error=RuntimeError('wrapper')\n            if mode=='explicit':\n                raise error from original\n            elif mode=='suppressed':\n                raise error from None\n            else:\n                raise error from original\n    except BaseException as caught:\n        pass\n        return [type(caught).__name__, None if caught.__cause__ is None else type(caught.__cause__).__name__, None if caught.__context__ is None else type(caught.__context__).__name__, caught.__suppress_context__]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('explicit cause', solve('explicit'), ['RuntimeError', 'ValueError', 'ValueError', True])\ncheck('suppressed display', solve('suppressed'), ['RuntimeError', None, 'ValueError', True])\ncheck('implicit context', solve('implicit'), ['RuntimeError', None, 'ValueError', False])\ncheck('default path remains implicit', solve('other'), ['RuntimeError', None, 'ValueError', False])\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":"f07726ef7355c01b0cd1097f2da3deb21d5c5aa6b6e116b9e1e5bc8a9b7be607","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(mode):\n    try:\n        try:\n            raise ValueError('original')\n        except ValueError as original:\n            error=RuntimeError('wrapper')\n            if mode=='explicit':\n                raise error from original\n            elif mode=='suppressed':\n                raise error\n            else:\n                raise error\n    except BaseException as caught:\n        pass\n        return [type(caught).__name__, None if caught.__cause__ is None else type(caught.__cause__).__name__, None if caught.__context__ is None else type(caught.__context__).__name__, caught.__suppress_context__]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('explicit cause', solve('explicit'), ['RuntimeError', 'ValueError', 'ValueError', True])\ncheck('suppressed display', solve('suppressed'), ['RuntimeError', None, 'ValueError', True])\ncheck('implicit context', solve('implicit'), ['RuntimeError', None, 'ValueError', False])\ncheck('default path remains implicit', solve('other'), ['RuntimeError', None, 'ValueError', False])\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":"f298b5850e85d1c41cef21ebfc85bc463d87ca117fcc39239a37d1937c35333e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(mode):\n    try:\n        try:\n            raise ValueError('original')\n        except ValueError as original:\n            error=RuntimeError('wrapper')\n            if mode=='explicit':\n                raise error from original\n            elif mode=='suppressed':\n                raise error from None\n            else:\n                raise error\n    except BaseException as caught:\n        pass\n        return [type(caught).__name__, None if caught.__cause__ is None else type(caught.__cause__).__name__, None if caught.__context__ is None else type(caught.__context__).__name__, caught.__suppress_context__]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('explicit cause', solve('explicit'), ['RuntimeError', 'ValueError', 'ValueError', True])\ncheck('suppressed display', solve('suppressed'), ['RuntimeError', None, 'ValueError', True])\ncheck('implicit context', solve('implicit'), ['RuntimeError', None, 'ValueError', False])\ncheck('default path remains implicit', solve('other'), ['RuntimeError', None, 'ValueError', False])\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":"xl-exception-chaining-metadata-suppression-omitted","generated_at":"2026-09-29T14:37:47.268088+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Runs Python standard-library language operations in a deterministic local reproducer. Literal expected answers are authored independently. Related defects share an evaluation group to avoid benchmark split leakage.","repair":"Wrap ValueError in RuntimeError with implicit, explicit, or from-None chaining. Return [error type,cause type or None,context type or None,suppress-context flag]. Suppressing displayed context does not erase __context__.","root_cause":"Leaves implicit context visible when from-None suppression was requested. The executable reproducer isolates this operation from the rest of the contract.","sha256":"2deb9d4875bd2d0ed547e9baef388dd39a2021fb20ee384d3d7db7445d63da58","title":"Exception chaining metadata: Leaves implicit context visible when from-None suppression was requested · case 01","variant":1,"variant_policy":"The five numbered cases rerun the same authored boundary fixtures; they are reproducibility runs, not independent input variants.","verification":{"attempt":{"elapsed_ms":42.645,"exit_code":1,"observations":[{"actual":["RuntimeError","ValueError","ValueError",true],"check":"explicit cause","expected":["RuntimeError","ValueError","ValueError",true],"passed":true},{"actual":["RuntimeError",null,"ValueError",true],"check":"suppressed display","expected":["RuntimeError",null,"ValueError",true],"passed":true},{"actual":["RuntimeError","ValueError","ValueError",true],"check":"implicit context","expected":["RuntimeError",null,"ValueError",false],"passed":false},{"actual":["RuntimeError","ValueError","ValueError",true],"check":"default path remains implicit","expected":["RuntimeError",null,"ValueError",false],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit cause\", \"actual\": [\"RuntimeError\", \"ValueError\", \"ValueError\", true], \"expected\": [\"RuntimeError\", \"ValueError\", \"ValueError\", true], \"passed\": true}, {\"check\": \"suppressed display\", \"actual\": [\"RuntimeError\", null, \"ValueError\", true], \"expected\": [\"RuntimeError\", null, \"ValueError\", true], \"passed\": true}, {\"check\": \"implicit context\", \"actual\": [\"RuntimeError\", \"ValueError\", \"ValueError\", true], \"expected\": [\"RuntimeError\", null, \"ValueError\", false], \"passed\": false}, {\"check\": \"default path remains implicit\", \"actual\": [\"RuntimeError\", \"ValueError\", \"ValueError\", true], \"expected\": [\"RuntimeError\", null, \"ValueError\", false], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":35.246,"exit_code":1,"observations":[{"actual":["RuntimeError","ValueError","ValueError",true],"check":"explicit cause","expected":["RuntimeError","ValueError","ValueError",true],"passed":true},{"actual":["RuntimeError",null,"ValueError",false],"check":"suppressed display","expected":["RuntimeError",null,"ValueError",true],"passed":false},{"actual":["RuntimeError",null,"ValueError",false],"check":"implicit context","expected":["RuntimeError",null,"ValueError",false],"passed":true},{"actual":["RuntimeError",null,"ValueError",false],"check":"default path remains implicit","expected":["RuntimeError",null,"ValueError",false],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit cause\", \"actual\": [\"RuntimeError\", \"ValueError\", \"ValueError\", true], \"expected\": [\"RuntimeError\", \"ValueError\", \"ValueError\", true], \"passed\": true}, {\"check\": \"suppressed display\", \"actual\": [\"RuntimeError\", null, \"ValueError\", false], \"expected\": [\"RuntimeError\", null, \"ValueError\", true], \"passed\": false}, {\"check\": \"implicit context\", \"actual\": [\"RuntimeError\", null, \"ValueError\", false], \"expected\": [\"RuntimeError\", null, \"ValueError\", false], \"passed\": true}, {\"check\": \"default path remains implicit\", \"actual\": [\"RuntimeError\", null, \"ValueError\", false], \"expected\": [\"RuntimeError\", null, \"ValueError\", false], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.723,"exit_code":0,"observations":[{"actual":["RuntimeError","ValueError","ValueError",true],"check":"explicit cause","expected":["RuntimeError","ValueError","ValueError",true],"passed":true},{"actual":["RuntimeError",null,"ValueError",true],"check":"suppressed display","expected":["RuntimeError",null,"ValueError",true],"passed":true},{"actual":["RuntimeError",null,"ValueError",false],"check":"implicit context","expected":["RuntimeError",null,"ValueError",false],"passed":true},{"actual":["RuntimeError",null,"ValueError",false],"check":"default path remains implicit","expected":["RuntimeError",null,"ValueError",false],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit cause\", \"actual\": [\"RuntimeError\", \"ValueError\", \"ValueError\", true], \"expected\": [\"RuntimeError\", \"ValueError\", \"ValueError\", true], \"passed\": true}, {\"check\": \"suppressed display\", \"actual\": [\"RuntimeError\", null, \"ValueError\", true], \"expected\": [\"RuntimeError\", null, \"ValueError\", true], \"passed\": true}, {\"check\": \"implicit context\", \"actual\": [\"RuntimeError\", null, \"ValueError\", false], \"expected\": [\"RuntimeError\", null, \"ValueError\", false], \"passed\": true}, {\"check\": \"default path remains implicit\", \"actual\": [\"RuntimeError\", null, \"ValueError\", false], \"expected\": [\"RuntimeError\", null, \"ValueError\", false], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}