Devolutions / Devolutions/UniGetUI

[BUG] Automatic updates reinstall software removed outside its package manager

Open
#5,020 2 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.