wingettroubleshootingerror0x80073D02

Fix: winget 0x80073D02 'Package is Currently in Use'

winget error 0x80073D02 means the app is running. Here are 5 ways to fix it — from killing the process to forcing the upgrade through services.

· 4 min read · updated May 29, 2026
Fix: winget 0x80073D02 'Package is Currently in Use'

You ran winget upgrade and got "0x80073D02 — Package is currently in use" or "The package is in use by another process". Here's exactly what that means and 5 ways to fix it.

Why 0x80073D02 happens

Windows refuses to upgrade an app that's currently running. The DLLs and EXEs are locked while the process holds them. winget reports this with HRESULT 0x80073D02.

Cause is always the same: the app (or one of its background processes) is open.

Fix 1 — Close the app

The obvious one. Find the app in your taskbar or system tray, close it normally, then:

winget upgrade --id <ID>

Should work.

Fix 2 — Kill the process

If the app has hidden background processes, regular close isn't enough:

# Find all processes for the app
Get-Process -Name "*chrome*" -ErrorAction SilentlyContinue

# Kill them all
Get-Process -Name "chrome" -ErrorAction SilentlyContinue | Stop-Process -Force

Common apps with background processes:

  • Chrome / Edge / Brave — runs even when "closed" (system tray icon)
  • Discord — minimises to tray
  • Spotify — keeps a background process
  • Steam — runs services
  • OneDrive — always running
  • Teams — multiple processes

After killing, retry:

winget upgrade --id <ID>

Fix 3 — Stop the service

Some apps install Windows services that hold file locks:

Get-Service | Where-Object { $_.Name -like "*Docker*" }

Output example:

Status   Name               DisplayName
------   ----               -----------
Running  com.docker.service Docker Desktop Service

Stop it:

Stop-Service com.docker.service -Force

Now retry winget. After the upgrade, the service auto-starts again (or restart Docker manually).

Common service-heavy apps:

  • Docker Desktop
  • VirtualBox
  • VMware
  • Adobe Creative Cloud
  • Microsoft Office Click-to-Run
  • Some antivirus tools

Fix 4 — Force the upgrade

If the app uses delayed file replacement (replaces files on next reboot), --force can help:

winget upgrade --id <ID> --force

This tells winget to proceed even if files are locked; Windows queues the replacement and applies it on reboot.

After upgrade, reboot:

shutdown /r /t 0

Fix 5 — Reboot and retry

The nuclear option that always works:

shutdown /r /t 0

After reboot, the app isn't running yet. Run winget immediately:

winget upgrade --id <ID>

This is the "I'm done debugging" approach.

Specific apps that often hit 0x80073D02

Microsoft Teams

Teams has 4-5 background processes that don't close from the UI:

Get-Process | Where-Object { $_.Name -like "*Teams*" } | Stop-Process -Force
winget upgrade --id Microsoft.Teams

OneDrive

OneDrive auto-restarts after kill. Stop and signout:

taskkill /f /im OneDrive.exe
winget upgrade --id Microsoft.OneDrive

Steam

Steam runs even when window is closed:

Get-Process steam -ErrorAction SilentlyContinue | Stop-Process -Force
Stop-Service "Steam Client Service" -Force -ErrorAction SilentlyContinue
winget upgrade --id Valve.Steam

Discord

Discord keeps multiple processes:

Get-Process discord -ErrorAction SilentlyContinue | Stop-Process -Force
winget upgrade --id Discord.Discord

Microsoft Edge

Even after closing Edge, MSEdgeUpdate.exe stays running. Kill all Edge processes:

Get-Process | Where-Object { $_.Name -like "*edge*" -or $_.Name -like "*msedge*" } | Stop-Process -Force
winget upgrade --id Microsoft.Edge

Adobe Creative Cloud

Adobe's processes are notoriously hard to kill. Stop the service first:

Stop-Service "Adobe Genuine Monitor Service" -Force
Get-Process | Where-Object { $_.Name -like "*Adobe*" -or $_.Name -like "*Creative Cloud*" } | Stop-Process -Force
winget upgrade --id Adobe.CreativeCloud

During winget upgrade --all

If you're updating many apps and one hits 0x80073D02, the rest continue. Note which app failed, close it, then retry just that one:

winget upgrade --id <FailedID>

Or pre-close everything before the bulk upgrade:

# Close common apps
$apps = "chrome", "msedge", "discord", "spotify", "teams"
$apps | ForEach-Object {
  Get-Process -Name $_ -ErrorAction SilentlyContinue | Stop-Process -Force
}

winget upgrade --all

Make it scriptable

Create a safe-upgrade.ps1:

# Kill known background-process apps
$processes = @(
  "chrome", "msedge", "discord", "spotify",
  "teams", "OneDrive", "OneDriveSetup",
  "steam", "EpicGamesLauncher"
)

foreach ($name in $processes) {
  Get-Process -Name $name -ErrorAction SilentlyContinue | Stop-Process -Force
}

Start-Sleep -Seconds 2

winget upgrade --all --include-unknown `
  --accept-package-agreements --accept-source-agreements `
  --silent --disable-interactivity

Run weekly. Apps reopen on next launch as needed.

When the error is misleading

Sometimes 0x80073D02 appears for apps that aren't visibly running:

  • System tray icons — closing the window doesn't quit
  • Windows services — auto-start at boot
  • Scheduled tasks — may launch the app silently
  • File explorer extensions — Windows Explorer holds DLLs

Open Task Manager → Details and search for the app's process name. If it's there, kill it.

Prevention

To minimise this happening:

  1. Reboot before bulk upgrades — every app starts fresh
  2. Close known offenders before winget upgrade --all
  3. Pin auto-update apps (browsers) so they don't appear in upgrade lists
  4. Schedule upgrades for off-hours when apps aren't open
Set up a fresh machine?
winget.tech generates first-time install scripts so you never need to upgrade running apps.
Browse packages →

What's next?

Continue reading