[PR #6735] [client] Preserve user autostart setting across Windows NSIS upgrades #29847

Open
opened 2026-08-05 08:09:08 -04:00 by saavagebueno · 0 comments
Owner

Original Pull Request: https://github.com/netbirdio/netbird/pull/6735

State: closed
Merged: No


Describe your changes

Fixes a pre-existing bug where every Windows EXE (NSIS) auto-update silently
wiped the user's launch-on-login setting.

The NSIS upgrade path (client/installer.nsis .onInit) runs the previous
version's uninstaller before reinstalling. That uninstaller deleted the
per-user HKCU\...\CurrentVersion\Run value that the UI's Wails autostart
toggle owns, so an upgrade removed the user's autostart choice on every update.

This stops deleting the HKCU value on uninstall. A leftover entry after a
genuine uninstall is harmless — Windows ignores Run values whose target
executable no longer exists, and a reinstall re-establishes it. The legacy
machine-wide HKLM entry that older installers wrote is still cleaned up.

This is groundwork for the upcoming autostart-default-on change, which keeps
the autostart decision entirely in the signed GUI (no installer/updater Run-key
writes).

Stack

Checklist

  • Is it a bug fix
  • Is a typo/documentation fix
  • Is a feature enhancement
  • It is a refactor
  • Created tests that fail without the change (if possible)
  • This change does not modify the public API, gRPC protocols, functionality behavior, CLI / service flags, or introduce a new feature — OR I have discussed it with the NetBird team beforehand (link the issue / Slack thread in the description). See CONTRIBUTING.md.

By submitting this pull request, you confirm that you have read and agree to the terms of the Contributor License Agreement.

Documentation

Select exactly one:

  • I added/updated documentation for this change
  • Documentation is not needed for this change (explain why)

Internal Windows installer fix with no user-facing surface beyond the setting
now being preserved as expected.

Docs PR URL (required if "docs added" is checked)

Paste the PR link from https://github.com/netbirdio/docs here:

https://github.com/netbirdio/docs/pull/__

Summary by CodeRabbit

  • Bug Fixes
    • Improved upgrade and uninstall behavior for autostart settings.
    • Legacy machine-wide autostart entries are now removed as expected.
    • Per-user autostart preferences are preserved, preventing uninstall or upgrade actions from unexpectedly disabling settings configured through the application.
**Original Pull Request:** https://github.com/netbirdio/netbird/pull/6735 **State:** closed **Merged:** No --- ## Describe your changes Fixes a pre-existing bug where every Windows EXE (NSIS) auto-update silently wiped the user's launch-on-login setting. The NSIS upgrade path (`client/installer.nsis` `.onInit`) runs the previous version's uninstaller before reinstalling. That uninstaller deleted the per-user `HKCU\...\CurrentVersion\Run` value that the UI's Wails autostart toggle owns, so an upgrade removed the user's autostart choice on every update. This stops deleting the HKCU value on uninstall. A leftover entry after a genuine uninstall is harmless — Windows ignores `Run` values whose target executable no longer exists, and a reinstall re-establishes it. The legacy machine-wide `HKLM` entry that older installers wrote is still cleaned up. This is groundwork for the upcoming autostart-default-on change, which keeps the autostart decision entirely in the signed GUI (no installer/updater Run-key writes). ## Issue ticket number and link ## Stack <!-- branch-stack --> ### Checklist - [x] Is it a bug fix - [ ] Is a typo/documentation fix - [ ] Is a feature enhancement - [ ] It is a refactor - [ ] Created tests that fail without the change (if possible) - [x] This change does **not** modify the public API, gRPC protocols, functionality behavior, CLI / service flags, or introduce a new feature — **OR** I have discussed it with the NetBird team beforehand (link the issue / Slack thread in the description). See [CONTRIBUTING.md](https://github.com/netbirdio/netbird/blob/main/CONTRIBUTING.md#discuss-changes-with-the-netbird-team-first). > By submitting this pull request, you confirm that you have read and agree to the terms of the [Contributor License Agreement](https://github.com/netbirdio/netbird/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT.md). ## Documentation Select exactly one: - [ ] I added/updated documentation for this change - [x] Documentation is **not needed** for this change (explain why) Internal Windows installer fix with no user-facing surface beyond the setting now being preserved as expected. ### Docs PR URL (required if "docs added" is checked) Paste the PR link from https://github.com/netbirdio/docs here: https://github.com/netbirdio/docs/pull/__ <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Improved upgrade and uninstall behavior for autostart settings. - Legacy machine-wide autostart entries are now removed as expected. - Per-user autostart preferences are preserved, preventing uninstall or upgrade actions from unexpectedly disabling settings configured through the application. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
saavagebueno added the pull-request label 2026-08-05 08:09:08 -04:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#29847