{"record":{"id":"0f0798d24e21ef65","repo":"slackhq/nebula","slug":"entry-v-route-in-tun-unsafe-routes-is-not-present","errorCode":null,"errorMessage":"entry %v.route in tun.unsafe_routes is not present","messagePattern":"entry (.+?)\\.route in tun\\.unsafe_routes is not present","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"overlay/route.go","lineNumber":271,"sourceCode":"\t\t\t\t\t\treturn nil, fmt.Errorf(\"entry .weight in tun.unsafe_routes[%v].via[%v] is not an integer\", i+1, ig+1)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif gatewayWeight < 1 || gatewayWeight > math.MaxInt32 {\n\t\t\t\t\treturn nil, fmt.Errorf(\"entry .weight in tun.unsafe_routes[%v].via[%v] is not in range (1-%d) : %v\", i+1, ig+1, math.MaxInt32, gatewayWeight)\n\t\t\t\t}\n\n\t\t\t\tgateways[ig] = routing.NewGateway(gatewayIp, gatewayWeight)\n\n\t\t\t}\n\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"entry %v.via in tun.unsafe_routes is not a string or list of gateways: found %T\", i+1, rVia)\n\t\t}\n\n\t\trRoute, ok := m[\"route\"]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"entry %v.route in tun.unsafe_routes is not present\", i+1)\n\t\t}\n\n\t\tinstall := true\n\t\trInstall, ok := m[\"install\"]\n\t\tif ok {\n\t\t\tinstall, err = strconv.ParseBool(fmt.Sprintf(\"%v\", rInstall))\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"entry %v.install in tun.unsafe_routes is not a boolean: %v\", i+1, err)\n\t\t\t}\n\t\t}\n\n\t\tr := Route{\n\t\t\tVia:     gateways,\n\t\t\tMTU:     mtu,\n\t\t\tMetric:  metric,\n\t\t\tInstall: install,\n\t\t}\n","sourceCodeStart":253,"sourceCodeEnd":289,"githubUrl":"https://github.com/slackhq/nebula/blob/dd8f660c0ac37903ec4080ca4d3c861ba9342ceb/overlay/route.go#L253-L289","documentation":"Config validation error in parseUnsafeRoutes: the i+1-th entry lacks the mandatory `route` key, so there is no destination CIDR for the unsafe route. via/mtu/metric were validated but the route prefix itself is missing.","triggerScenarios":"Thrown at overlay/route.go:271 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add route: <CIDR> (e.g. 10.0.0.0/8) to the entry"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"dd8f660c0ac37903ec4080ca4d3c861ba9342ceb","analyzedAt":"2026-09-03T11:13:55.444Z","contentChangedAt":"2026-09-03T11:13:55.444Z","schemaVersion":2},"datasetVersion":"2026-09-10T17:17:09.494Z"}