{"record":{"id":"8e82ab7aff1bc308","repo":"XTLS/Xray-core","slug":"default-route-not-found","errorCode":null,"errorMessage":"default route not found","messagePattern":"default route not found","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"proxy/tun/tun_darwin.go","lineNumber":527,"sourceCode":"\t\t\tcontinue\n\t\t}\n\n\t\tfamily, ok := defaultRouteFamily(routeMessage)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tif family == unix.AF_INET {\n\t\t\treturn usableDarwinInterface(routeMessage.Index)\n\t\t}\n\t\tif family == unix.AF_INET6 && ipv6Index == 0 {\n\t\t\tipv6Index = routeMessage.Index\n\t\t}\n\t}\n\n\tif ipv6Index != 0 {\n\t\treturn usableDarwinInterface(ipv6Index)\n\t}\n\treturn nil, errors.New(\"default route not found\")\n}\n\nfunc defaultRouteFamily(message *route.RouteMessage) (int, bool) {\n\tif len(message.Addrs) <= unix.RTAX_NETMASK {\n\t\treturn 0, false\n\t}\n\n\tswitch destination := message.Addrs[unix.RTAX_DST].(type) {\n\tcase *route.Inet4Addr:\n\t\tmask, ok := message.Addrs[unix.RTAX_NETMASK].(*route.Inet4Addr)\n\t\tif !ok || destination.IP != netip.IPv4Unspecified().As4() {\n\t\t\treturn 0, false\n\t\t}\n\t\tones, bits := net.IPMask(mask.IP[:]).Size()\n\t\treturn unix.AF_INET, ones == 0 && bits == 32\n\tcase *route.Inet6Addr:\n\t\tmask, ok := message.Addrs[unix.RTAX_NETMASK].(*route.Inet6Addr)\n\t\tif !ok || destination.IP != netip.IPv6Unspecified().As16() {","sourceCodeStart":509,"sourceCodeEnd":545,"githubUrl":"https://github.com/XTLS/Xray-core/blob/7d214f8b094f75322fa3990f8aadad1c912f24f5/proxy/tun/tun_darwin.go#L509-L545","documentation":"Error \"default route not found\" thrown in XTLS/Xray-core.","triggerScenarios":"Thrown at proxy/tun/tun_darwin.go:527 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7d214f8b094f75322fa3990f8aadad1c912f24f5","analyzedAt":"2026-08-15T14:26:24.325Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}