{"abstract":"Nullable field rejects null before applying its base type.","category":"Tool call schema validation","checks":6,"contract":"A nullable value is valid when it is None or its exact type equals base_type.","contract_signature":"value, base_type","evaluation_group":"w3-schema-nullable-type-union","failed_approach":"Using isinstance for the base-type check admits bool values in an integer schema because bool subclasses int.","family":"w3-tool-call-schema-validation-nullable-type-union","id":"FA-99811","implementations":{"attempt":{"sha256":"63952c9e7173f93270052b2a08c7f9f72a291dfdef7c8b742e297d6347587ad7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(value, base_type):\n    return value is None or isinstance(value,base_type)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('null branch',solve(None,int),True)\ncheck('integer branch',solve(N,int),True)\ncheck('bool not int',solve(True,int),False)\ncheck('wrong scalar type',solve('x',int),False)\ncheck('false null-like',solve(False,str),False)\ncheck('null string type',solve(None,str),True)\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":"5a2b879ead34f2ec305833d69ec0f2134a9929b38971eaf10eef52d54648214f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(value, base_type):\n    return type(value) is base_type\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('null branch',solve(None,int),True)\ncheck('integer branch',solve(N,int),True)\ncheck('bool not int',solve(True,int),False)\ncheck('wrong scalar type',solve('x',int),False)\ncheck('false null-like',solve(False,str),False)\ncheck('null string type',solve(None,str),True)\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":"Self-contained toy JSON-like schema contract over in-memory Python values; no compatibility with a production schema standard or callable binding 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":"w3-tool-call-schema-validation-nullable-type-union","generated_at":"2026-09-30T16:48:28.523159+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Tool argument validation prevents malformed structured payloads from entering a deterministic downstream operation.","root_cause":"The base type test runs without a null union branch.","sha256":"94b2cbcac5c1daff8404478e25a3e02c184baefa382876aae289719234fc1f99","title":"Nullable field rejects null before applying its base type · case 01","variant":1,"variant_policy":"The fixture code references N, supplied as 1 through 5. Fixed boundary checks may repeat. These records share one mechanism and must remain together in evaluation splits.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":27.205,"exit_code":1,"observations":[{"actual":true,"check":"null branch","expected":true,"passed":true},{"actual":true,"check":"integer branch","expected":true,"passed":true},{"actual":true,"check":"bool not int","expected":false,"passed":false},{"actual":false,"check":"wrong scalar type","expected":false,"passed":true},{"actual":false,"check":"false null-like","expected":false,"passed":true},{"actual":true,"check":"null string type","expected":true,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"null branch\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"integer branch\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"bool not int\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"wrong scalar type\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"false null-like\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"null string type\", \"actual\": true, \"expected\": true, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":29.685,"exit_code":1,"observations":[{"actual":false,"check":"null branch","expected":true,"passed":false},{"actual":true,"check":"integer branch","expected":true,"passed":true},{"actual":false,"check":"bool not int","expected":false,"passed":true},{"actual":false,"check":"wrong scalar type","expected":false,"passed":true},{"actual":false,"check":"false null-like","expected":false,"passed":true},{"actual":false,"check":"null string type","expected":true,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"null branch\", \"actual\": false, \"expected\": true, \"passed\": false}, {\"check\": \"integer branch\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"bool not int\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"wrong scalar type\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"false null-like\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"null string type\", \"actual\": false, \"expected\": true, \"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."}}