Devolutions / Devolutions/UniGetUI

[BUG] Primarily? Duplicate installs. But also: failed updates, shortcut spam, lack of control of install location and options.

Open
#4,246 14 comments 0 reactions 1 assignee Claimed by @marticliment View on GitHub
bug
Dominant language
C#
Stars
26.1k
Forks
924
Avg merge
15h 52m
Merged PRs (30d)
52

Description

### Please confirm these before moving forward

- [x] I have searched for my issue and have not found a work-in-progress/duplicate/resolved issue.
- [x] I have tested that this issue has not been fixed in the latest [(beta or stable) release](https://github.com/marticliment/WingetUI/releases/).
- [x] I have checked the [FAQ](https://github.com/marticliment/WingetUI#frequently-asked-questions) section for solutions.
- [x] This issue is about a bug (if it is not, please use the [correct template](https://github.com/marticliment/WingetUI/issues/new/choose)).

### UniGetUI Version

3.3.6

### Windows version, edition, and architecture

Windows 11 IoT Enterprise LTSC 24H2

### Describe your issue

I need to take a breath.

I am really trying not to give up on this software. The idea is wonderful, sublime even. But the reality is utterly miserable. I installed this on every machine which totals 5 machines so far. I learned my lesson on the 5th one but have yet to see if it results in a better experience.

I started out with a fresh install fairly recently (on all devices) and installed all my necessary software, which includes UniGetUI. That means that before UniGetUI is installed, those essentials are installed manually by me, not through UniGetUI (this is what I did differently on the 5th device). However, I still use UniGetUI to update all my apps.

This has caused absolute havoc.

Firstly, my exquisitely managed start menu and desktop have been trashed by shortcuts haphazardly strewn about. This is not really an issue exclusive to UniGetUI. Plus, I did find the setting to at least fix the desktop shortcuts, but PLEASE add one to disable shortcut creation anywhere at all whatsoever.

Secondly, I have two of every app updated installed because instead of uninstalling the old one, UniGetUI is keeping it and installing the new one as well as the old one. THEN, when you try to uninstall the old one specifically, it uninstalls EVERYTHING. As you'll see in the logs, it uninstalled winget entirely, when I told it to only uninstall the old one after it updated/installed the latest one, as well as.
I am just profoundly glad I have everything synced/backed up, even settings, because it did completely nuke Obsidian. Which... that would be another conversation entirely. It is mission critical.

Thirdly, there's the failed updates (Parsec on every device failing drove me mad and it was only 8 times before I disabled it on every device). Is there not a list of apps that just do not like to be fettled with? And if the app has a perfectly functional, and even excellent, internal update mechanism (Parsec, Process Lasso, VSCodium etc), why bother updating them? I feel like there's a missing layer of intelligence and allow/block listing that should be occurring without user interaction.

Lastly, UniGetUI does not respect install locations. If I installed something manually (because I didn't want to be forced into the publisher's choices of my exe being 3 folders deep, named incomprehensible things and sometimes in Program Files, sometimes in AppData just to spice it up), UniGetUI should check that and install to the same location. Instead, it installs things again but in the default locations.

I really like the idea, and I REALLY want this to work, but I am this close [] to obliterating UniGetUI from all my devices. Please, give me a reason not to. Because even one or two apps, like HWInfo64, that popup and force me to go to a website download, quit, and install again to update, make this program worth it.

### Steps to reproduce the issue

Well, install stuff. Then update stuff. Then check. I've had so many issues on multiple very different devices that you cannot all be missing all of them.

### UniGetUI Log

```text
[12/11/25 11:37:01] __ __ _ ______ __ __ ______
/ / / /___ (_) ____/__ / /_/ / / / _/
/ / / / __ \/ / / __/ _ \/ __/ / / // /
/ /_/ / / / / / /_/ / __/ /_/ /_/ // /
\____/_/ /_/_/\____/\___/\__/\____/___/
Welcome to UniGetUI Version 3.3.6
[12/11/25 11:37:01]
[12/11/25 11:37:01] Build 104
[12/11/25 11:37:01] Data directory C:\Users\J\AppData\Local\UniGetUI
[12/11/25 11:37:01] Encoding Code Page set to 850
[12/11/25 11:37:04] Loaded language locale: en
[12/11/25 11:37:05] Could not retrieve token (it may not exist): Element not found.

Cannot get credential from Vault
[12/11/25 11:37:06] Lang files were updated successfully from GitHub
[12/11/25 11:37:06] Restored geometry was outside of desktop bounds
[12/11/25 11:37:06] Randomly-generated background API auth token: phqo4qpujtio7rwids9b4vds3rfuvhf5pqu2lzfm5m2n9wo1vyqwcrwuwvv5bnsi
[12/11/25 11:37:06] Call to WhichMultiple with file vcpkg.exe returned non-zero status 1
[12/11/25 11:37:06] Command vcpkg.exe was not found on the system
[12/11/25 11:37:06] Call to WhichMultiple with file choco.exe returned non-zero status 1
[12/11/25 11:37:06] Command choco.exe was not found on the system
[12/11/25 11:37:06] Chocolatey is enabled and was found on C:\Users\J\AppData\Local\UniGetUI\Chocolatey\choco.exe
[12/11/25 11:37:06] Call to WhichMultiple with file npm.ps1 returned non-zero status 1
[12/11/25 11:37:06] Command npm.ps1 was not found on the system
[12/11/25 11:37:06] Npm is enabled but was not found on the system!
[12/11/25 11:37:06] Call to WhichMultiple with file cargo.exe returned non-zero status 1
[12/11/25 11:37:06] Command cargo.exe was not found on the system
[12/11/25 11:37:06] Cargo is enabled but was not found on the system!
[12/11/25 11:37:06] Pip is enabled and was found on C:\Users\J\AppData\Local\Microsoft\WindowsApps\python.exe
[12/11/25 11:37:06] Scoop is enabled and was found on C:\Program Files\PowerShell\7\pwsh.exe
[12/11/25 11:37:06] Call to WhichMultiple with file vcpkg returned non-zero status 1
[12/11/25 11:37:06] Command vcpkg was not found on the system
[12/11/25 11:37:07] An error occurred while initialising package manager Chocolatey
[12/11/25 11:37:07] PowerShell7 is enabled and was found on C:\Program Files\PowerShell\7\pwsh.exe
[12/11/25 11:37:07] PowerShell is enabled and was found on c:\Windows\System32\windowspowershell\v1.0\powershell.exe
[12/11/25 11:37:07] .NET Tool is enabled but was not found on the system!
[12/11/25 11:37:07] An error occurred while initialising package manager Pip
[12/11/25 11:37:07] Call to WhichMultiple with file vcpkg returned non-zero status 1
[12/11/25 11:37:07] Command vcpkg was not found on the system
[12/11/25 11:37:07] Vcpkg root was not found. Please define the %VCPKG_ROOT% environment variable or define it from UniGetUI Settings
[12/11/25 11:37:07] vcpkg is enabled but was not found on the system!
[12/11/25 11:37:07] Winget is enabled and was found on C:\Users\J\AppData\Local\Microsoft\WindowsApps\winget.exe
[12/11/25 11:37:07] System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'C:\Users\J\AppData\Local\UniGetUI\Chocolatey\choco.exe' with working directory 'C:\Program Files\UniGetUI'. The system cannot find the file specified.
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo)
at UniGetUI.PackageEngine.Managers.ChocolateyManager.Chocolatey._loadManagerVersion(String& version) in C:\SomePrograms\WingetUI-Store\src\UniGetUI.PackageEngine.Managers.Chocolatey\Chocolatey.cs:line 317
at UniGetUI.PackageEngine.ManagerClasses.Manager.PackageManager.Initialize() in C:\SomePrograms\WingetUI-Store\src\UniGetUI.PackageEngine.PackageManagerClasses\Manager\PackageManager.cs:line 82
[12/11/25 11:37:07] System.Exception: Microsoft Store python alias is not a valid python install
at UniGetUI.PackageEngine.Managers.PipManager.Pip._loadManagerVersion(String& version) in C:\SomePrograms\WingetUI-Store\src\UniGetUI.PackageEngine.Managers.Pip\Pip.cs:line 379
at UniGetUI.PackageEngine.ManagerClasses.Manager.PackageManager.Initialize() in C:\SomePrograms\WingetUI-Store\src\UniGetUI.PackageEngine.PackageManagerClasses\Manager\PackageManager.cs:line 82
[12/11/25 11:37:07] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
█ Name: WinGet (aka Winget)
█ Executable name: "winget.exe"
█ Executable path: "C:\Users\J\AppData\Local\Microsoft\WindowsApps\winget.exe"
█ Call arguments: ""
█ Version: System WinGet (CLI) Version: v1.12.350
█ Using Native WinGet helper (COM Api)

█ WinGet is enabled and ready to go.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[12/11/25 11:37:08] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
█ Name: PowerShell 5.x (aka PowerShell)
█ Executable name: "powershell.exe"
█ Executable path: "c:\Windows\System32\windowspowershell\v1.0\powershell.exe"
█ Call arguments: " -NoProfile -Command"
█ Version: Name Value
█ ---- -----
█ PSVersion 5.1.26100.6899
█ PSEdition Desktop
█ PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
█ BuildVersion 10.0.26100.6899
█ CLRVersion 4.0.30319.42000
█ WSManStackVersion 3.0
█ PSRemotingProtocolVersion 2.3
█ SerializationVersion 1.1.0.1

█ PowerShell 5.x is enabled and ready to go.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[12/11/25 11:37:10] Api running on http://localhost:7058
[12/11/25 11:37:11] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
█ Name: PowerShell 7.x (aka PowerShell7)
█ Executable name: "pwsh.exe"
█ Executable path: "C:\Program Files\PowerShell\7\pwsh.exe"
█ Call arguments: " -NoProfile -Command"
█ Version: PowerShell 7.5.4

█ PowerShell 7.x is enabled and ready to go.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[12/11/25 11:37:16] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
█ Name: Scoop (aka Scoop)
█ Executable name: "scoop"
█ Executable path: "C:\Program Files\PowerShell\7\pwsh.exe"
█ Call arguments: "-NoProfile -ExecutionPolicy Bypass -Command "C:\Users\J\scoop\shims\scoop.ps1" "
█ Version: Current Scoop version:
█ b588a06e chore(release): Bump to version 0.5.3 (resync) (#6436)

█ 'main' bucket:
█ dfb996fd0 trid: Update to version 2.45-25.11.11

█ Scoop is enabled and ready to go.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[12/11/25 11:37:30] LoadComponentsAsync finished executing. All managers loaded. Proceeding to interface.
[12/11/25 11:37:31] Dependency Scoop-Search for manager Scoop is present
[12/11/25 11:37:32] Dependency Git for manager Scoop is present
[12/11/25 11:37:32] Downloaded new icons and screenshots successfully!
[12/11/25 11:37:34] Found 3 installed packages from Scoop
[12/11/25 11:37:37] Found 1 installed packages from PowerShell
[12/11/25 11:37:37] Found 1 installed packages from PowerShell
[12/11/25 11:37:38] Found 0 available updates from PowerShell
[12/11/25 11:37:41] Found 106 installed packages from Winget
[12/11/25 11:37:41] Found 3 available updates from Winget
[12/11/25 11:37:44] Unknown mimetype image/jpeg for icon https://tweakers.net/ext/i/2004859552.jpeg, aborting download
[12/11/25 11:37:45] Found 0 installed packages from PowerShell7
[12/11/25 11:37:45] Found 0 installed packages from PowerShell7
[12/11/25 11:37:45] Found 0 available updates from PowerShell7
[12/11/25 11:37:47] Found 3 installed packages from Scoop
[12/11/25 11:37:49] Found 0 available updates from Scoop
[12/11/25 11:37:49] Loaded operation parameters for package id=Microsoft.DotNet.DesktopRuntime.8 on manager Winget and operation Update: update --id "Microsoft.DotNet.DesktopRuntime.8" --exact --source winget --accept-source-agreements --disable-interactivity --silent --include-unknown --accept-package-agreements --force
[12/11/25 11:37:49] Loaded operation parameters for package id=Microsoft.DotNet.DesktopRuntime.9 on manager Winget and operation Update: update --id "Microsoft.DotNet.DesktopRuntime.9" --exact --source winget --accept-source-agreements --disable-interactivity --silent --include-unknown --accept-package-agreements --force
[12/11/25 11:37:53] Integrity check passed successfully!
```

### Package Managers Logs

```text
Manager WinGet with version:
System WinGet (CLI) Version: v1.12.350
Using Native WinGet helper (COM Api)

——————————————————————————————————————————

Logged native task on manager Winget. Task type is ListSources
Process start time: 12/11/25 11:37:08
Process end time: 12/11/25 11:37:08

-- Task information
...

The task reported success

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is RefreshIndexes
Subprocess executable: "C:\Users\J\AppData\Local\Microsoft\WindowsApps\winget.exe"
Command-line arguments: " source update --disable-interactivity "
Process start time: 12/11/25 11:37:30
Process end time: 12/11/25 11:37:36

-- Process STDOUT
...

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged native task on manager Winget. Task type is ListInstalledPackages
Process start time: 12/11/25 11:37:30
Process end time: 12/11/25 11:37:41

-- Task information
...

The task reported success

——————————————————————————————————————————

Logged native task on manager Winget. Task type is OtherTask
Process start time: 12/11/25 11:37:30
Process end time: 12/11/25 11:37:39

-- Task information
...

The task reported success

——————————————————————————————————————————

Logged native task on manager Winget. Task type is ListUpdates
Process start time: 12/11/25 11:37:36
Process end time: 12/11/25 11:37:41

-- Task information
...

The task reported success

——————————————————————————————————————————
```

### Relevant information

_No response_

### Screenshots and videos

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.