{"record":{"id":"29ed8ae062cd6993","repo":"netbirdio/netbird","slug":"install-service-with-new-config-w","errorCode":null,"errorMessage":"install service with new config: %w","messagePattern":"install service with new config: %w","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"client/cmd/service_installer.go","lineNumber":250,"sourceCode":"\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create service: %w\", err)\n\t\t}\n\n\t\tif wasRunning {\n\t\t\tcmd.Println(\"Stopping NetBird service...\")\n\t\t\tif err := s.Stop(); err != nil {\n\t\t\t\tcmd.Printf(\"Warning: failed to stop service: %v\\n\", err)\n\t\t\t}\n\t\t}\n\n\t\tcmd.Println(\"Removing existing service configuration...\")\n\t\tif err := s.Uninstall(); err != nil {\n\t\t\treturn fmt.Errorf(\"uninstall existing service: %w\", err)\n\t\t}\n\n\t\tcmd.Println(\"Installing service with new configuration...\")\n\t\tif err := s.Install(); err != nil {\n\t\t\treturn fmt.Errorf(\"install service with new config: %w\", err)\n\t\t}\n\n\t\tif err := saveServiceParams(currentServiceParams()); err != nil {\n\t\t\tcmd.PrintErrf(\"Warning: failed to save service params: %v\\n\", err)\n\t\t}\n\n\t\tif wasRunning {\n\t\t\tcmd.Println(\"Starting NetBird service...\")\n\t\t\tif err := s.Start(); err != nil {\n\t\t\t\treturn fmt.Errorf(\"start service after reconfigure: %w\", err)\n\t\t\t}\n\t\t\tcmd.Println(\"NetBird service has been reconfigured and started\")\n\t\t} else {\n\t\t\tcmd.Println(\"NetBird service has been reconfigured\")\n\t\t}\n\n\t\treturn nil\n\t},","sourceCodeStart":232,"sourceCodeEnd":268,"githubUrl":"https://github.com/netbirdio/netbird/blob/93e97f4bf1ad715072dcb3fb6cdb1763431b5a9c/client/cmd/service_installer.go#L232-L268","documentation":"After removing the old registration, reconfigure could not install the new one. kardianos Install() failed, commonly because the old unit file is still present (the manager has not released it), privileges are missing, or the service name collides.","triggerScenarios":"/etc/systemd/system/netbird.service still exists when Install runs after Uninstall; running reconfigure non-elevated; a same-named service owned by another principal on Windows.","commonSituations":"Reconfigure immediately after stop on slow managers; unit files left behind by earlier manual edits.","solutions":["Re-run elevated: sudo netbird service reconfigure","Check for a leftover unit (ls /etc/systemd/system/netbird.service) and remove it if the manager says not-installed","Run systemctl daemon-reload, then retry","Fall back to explicit sudo netbird service uninstall && sudo netbird service install"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"unit := filepath.Join(\"/etc/systemd/system\", serviceName+\".service\")\nif _, err := os.Stat(unit); err == nil {\n\t_ = exec.Command(\"systemctl\", \"daemon-reload\").Run()\n}","typeGuard":null,"tryCatchPattern":"var err error\nfor attempt := 0; attempt < 2; attempt++ {\n\tif attempt > 0 {\n\t\ttime.Sleep(500 * time.Millisecond) // give the manager time to release the unit\n\t}\n\tif err = s.Install(); err == nil {\n\t\tbreak\n\t}\n}\nif err != nil {\n\treturn fmt.Errorf(\"install service with new config: %w\", err)\n}","preventionTips":["Run systemctl daemon-reload between uninstall and install","Leave a short settle delay when scripting reconfigure on slow managers"],"tags":["service","reconfigure","systemd","privileges","go"],"backgroundTag":null,"analyzedSha":"93e97f4bf1ad715072dcb3fb6cdb1763431b5a9c","analyzedAt":"2026-08-16T03:09:19.136Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}