I’ve seen it before, and I’ll see it again. In running routine WinGet updates yesterday, I noticed that my VPN (Private Internet Access, a paid-for subscription) wasn’t getting handled. I figured out why pretty quickly, too: it was because the VPN was running and WinGet didn’t want to mess with that connection. Although I’ve labeled this as a WinGet VPN update gotcha, it’s evidence of the program’s conservative outlook on interrupting something actively underway.
It’s Not Really a WinGet VPN Update Gotcha
Take a look at the lead-in graphic. You can see that WinGet knows an update is pending. You can also see that WinGet doesn’t apply that update. What you can’t see is that between the winget upgrade command and the following winget list command, I opened PIA (Private Internet Access) and used its internal update function to perform that pending operation. Thus the winget list command shows the latest version number (3.5.7+08120). Indeed it’s the very same version number that shows in the preceding winget upgrade command as “Available.” If you can’t see it on-screen, right-click that graphic and open it in a separate tab (it’s at bottom center).
In working with WinGet over the past few years — it first appeared in May, 2020, and I started using it early in 2022 — I’ve observed that it will often skip over updates when the program involved is running. This happens pretty regularly with web browsers (e.g. Chrome, Edge, and Firefox, in my case), but with other applications, too.
I appreciate this approach because it minimizes the risk of lost connections or data resulting from an upgrade. It can be a little disconcerting when it happens, but quick investigation usually straightens things out in short order. Keep up the good work, people!