Devolutions / Devolutions/UniGetUI
[BUG] Automatic updates reinstall software removed outside its package manager
- Dominant language
- C#
- Stars
- 26.1k
- Forks
- 924
- Avg merge
- 15h 1m
- Merged PRs (30d)
- 55
Description
### Please confirm these before moving forward
- [x] I searched open and closed issues and did not find a duplicate.
- [x] I reproduced this on the latest installed stable release.
- [x] I checked the FAQ.
- [x] This report describes unexpected behavior.
### UniGetUI Version
2026.2.2.0
### Windows version, edition, and architecture
Windows 11 Pro 10.0.26200, x64
### Describe your issue
When **Automatically update packages** is enabled, UniGetUI can silently reinstall an application that the user has already removed outside its package manager.
In this case, OpenCode Desktop had been removed, but Chocolatey's `opencode-desktop` package metadata still reported version 1.17.10. UniGetUI's daemon detected 1.17.11 and automatically ran:
```text
choco.exe upgrade opencode-desktop -y --no-progress
```
Chocolatey treats this as an upgrade and runs the installer, so the application reappears without an explicit install request. From the user's point of view, UniGetUI keeps restoring software they intentionally uninstalled.
I understand that stale package metadata originates in the underlying package manager. However, automatic updating should ideally avoid silently reinstalling software whose installed application/uninstall entry is no longer present. Possible safe behaviors would be to skip and notify, mark the package state as inconsistent, or require confirmation before reinstalling.
### Steps to reproduce the issue
1. Install an application through Chocolatey/UniGetUI.
2. Enable **Automatically update packages**.
3. Remove the application using its vendor uninstaller or Windows Installed Apps, leaving Chocolatey package metadata behind.
4. Wait until a newer package version becomes available (or otherwise trigger UniGetUI's automatic update processing).
5. Observe that UniGetUI runs `choco upgrade ` and the removed application is installed again.
### UniGetUI Log
```text
UniGetUI is running in the background as:
UniGetUI.exe --daemon
The configuration marker `AutomaticallyUpdatePackages` is present.
At 2026-06-27 12:15, the automatic package operation was initiated through UniGetUI. The application files were recreated at 12:16.
```
### Package Managers Logs
```text
2026-06-27 12:13:09 [DEBUG] Process Tree: Chocolatey CLI => Chocolatey CLI => UniGetUI => explorer
2026-06-27 12:13:10 [INFO ] opencode-desktop|1.17.10|1.17.11|false
2026-06-27 12:15:08 [DEBUG] Command line: choco.exe upgrade opencode-desktop -y --no-progress
2026-06-27 12:15:09 [DEBUG] Process Tree: Chocolatey CLI => Chocolatey CLI => UniGetUI => explorer
2026-06-27 12:15:09 [WARN ] You have opencode-desktop v1.17.10 installed. Version 1.17.11 is available.
2026-06-27 12:16:32 [INFO ] The upgrade of opencode-desktop was successful.
2026-06-27 12:16:32 [INFO ] Software installed as EXE, install location is likely default.
```
### Relevant information
- UniGetUI uses its bundled per-user Chocolatey 2.5.0 installation.
- UniGetUI starts at login with `--daemon`.
- This report is distinct from #3690, which concerns the explicit **Uninstall, then update** action.
- The package's separate uninstall-script quoting bug is unrelated to the automatic reinstall behavior described here.
### Screenshots and videos
Not applicable; the package-manager log captures the automatic operation and process tree.
Contributor guide
Research direction
Start from the UniGetUI.exe --daemon entry point and the AutomaticallyUpdatePackages configuration marker, then trace the automatic package operation that invokes `choco.exe upgrade`. Compare Chocolatey metadata with the application's installed or uninstall state; done means automatic updates no longer reinstall software removed outside the package manager, while normal upgrades still proceed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100