{"record":{"id":"e77554a49544c046","repo":"netbirdio/netbird","slug":"error-creating-tun-device-s-e77554","errorCode":null,"errorMessage":"error creating tun device: %s","messagePattern":"error creating tun device: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"client/iface/device/device_netstack.go","lineNumber":76,"sourceCode":"func (t *TunNetstackDevice) create() (WGConfigurer, error) {\n\tlog.Info(\"create nbnetstack tun interface\")\n\n\t// TODO: get from service listener runtime IP\n\tdnsAddr, err := nbnet.GetLastIPFromNetwork(t.address.Network, 1)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"last ip: %w\", err)\n\t}\n\n\taddresses := []netip.Addr{t.address.IP}\n\tif t.address.HasIPv6() {\n\t\taddresses = append(addresses, t.address.IPv6)\n\t}\n\tlog.Debugf(\"netstack using addresses: %v\", addresses)\n\tt.nsTun = nbnetstack.NewNetStackTun(t.listenAddress, addresses, dnsAddr, int(t.mtu))\n\tlog.Debugf(\"netstack using dns address: %s\", dnsAddr)\n\ttunIface, net, err := t.nsTun.Create()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error creating tun device: %s\", err)\n\t}\n\tt.filteredDevice = newDeviceFilter(tunIface)\n\tt.net = net\n\n\tt.device = device.NewDevice(\n\t\tt.filteredDevice,\n\t\tt.bind,\n\t\tdevice.NewLogger(wgLogLevel(), \"[netbird] \"),\n\t)\n\n\tt.configurer = configurer.NewUSPConfigurerNoUAPI(t.device, t.name, t.bind.ActivityRecorder())\n\terr = t.configurer.ConfigureInterface(t.key, t.port)\n\tif err != nil {\n\t\tif cErr := tunIface.Close(); cErr != nil {\n\t\t\tlog.Debugf(\"failed to close tun device: %v\", cErr)\n\t\t}\n\t\treturn nil, fmt.Errorf(\"error configuring interface: %s\", err)\n\t}","sourceCodeStart":58,"sourceCodeEnd":94,"githubUrl":"https://github.com/netbirdio/netbird/blob/93e97f4bf1ad715072dcb3fb6cdb1763431b5a9c/client/iface/device/device_netstack.go#L58-L94","documentation":"Error \"error creating tun device: %s\" thrown in netbirdio/netbird.","triggerScenarios":"Thrown at client/iface/device/device_netstack.go:76 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":"93e97f4bf1ad715072dcb3fb6cdb1763431b5a9c","analyzedAt":"2026-08-16T03:09:19.136Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}