microsoft / microsoft/winget-cli

WinGet Incorrectly Matches Two Different Applications Sharing the Same Package Name

Open
#6,087 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Command-Upgrade Issue-Bug
Dominant language
C++
Stars
26.4k
Forks
1.8k
Avg merge
1d 11h
Merged PRs (30d)
15

Description

WinGet incorrectly identifies two distinct applications as the same package because they share the same PackageName, despite having different UpgradeCode and ProductCode values.
Affected applications:

  • Krisp MA
  • Krisp CX

Both applications have the same PackageName but are completely separate products with unique UpgradeCode and ProductCode values.

Steps to Reproduce

  • Install Krisp CX on a machine.
  • Run winget upgrade.
  • WinGet detects Krisp MA (which has a higher version number) and attempts to install it as an upgrade to Krisp CX.

Expected Behavior
WinGet should treat the two applications as separate and distinct packages, using UpgradeCode or ProductCode as the primary identifier rather than PackageName.
Actual Behavior
WinGet matches packages by PackageName and incorrectly attempts to upgrade Krisp CX with the Krisp MA installer, replacing one application with another.
Temporary Workaround
As a temporary solution, we have removed all Krisp versions from WinGet.
Questions

  • Is there a configuration or workaround to prevent WinGet from matching packages solely by PackageName?
  • Is it possible to configure WinGet to detect and differentiate applications based exclusively on UpgradeCode or ProductCode?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the upgrade scenario with Krisp CX installed and inspect WinGet's package matching during winget upgrade. Compare how PackageName, UpgradeCode, and ProductCode are used for the two applications. Done means WinGet keeps Krisp MA and Krisp CX distinct and no longer attempts to replace Krisp CX with Krisp MA.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.