Skip to content

Report skipped upgrades when install technology differs (upgrade --all)#6096

Open
AMDphreak wants to merge 1 commit intomicrosoft:masterfrom
AMDphreak:fix/upgrade-all-install-technology-summary
Open

Report skipped upgrades when install technology differs (upgrade --all)#6096
AMDphreak wants to merge 1 commit intomicrosoft:masterfrom
AMDphreak:fix/upgrade-all-install-technology-summary

Conversation

@AMDphreak
Copy link

@AMDphreak AMDphreak commented Mar 21, 2026

Summary

Addresses silent skips during winget upgrade --all when a newer version exists but no installer applies because the installed package uses a different install technology than the available upgrade (see #5416).

Changes

  • Add APPINSTALLER_CLI_ERROR_UPDATE_INSTALL_TECHNOLOGY_MISMATCH (0x8A15008E) for this scenario so it is distinct from generic APPINSTALLER_CLI_ERROR_UPDATE_NOT_APPLICABLE.
  • In UpdateAllApplicable, count those packages and print a summary line (same pattern as unknown-version and explicit-upgrade skips).
  • Map the new code in COM Converters.h like other no-upgrade cases.
  • Document the HRESULT in doc/.../returnCodes.md and localized error strings.

Notes

Related reports: #4550 (post-install verification vs. installer success), #2027. This PR targets the silent --all behavior for install-technology mismatch; verifying installed version after every installer exit is a larger follow-up.

Testing

  • Updated UpdateFlow_UpdateExeInstallerTypeNotApplicable for the new HRESULT.
  • Please run the usual AppInstallerCLITests / CI build (not run in this environment).

Made with Cursor

Microsoft Reviewers: Open in CodeFlow

Introduce APPINSTALLER_CLI_ERROR_UPDATE_INSTALL_TECHNOLOGY_MISMATCH for the
case where a newer version exists but no installer applies because the
installed package uses a different install technology.

winget upgrade --all previously continued silently for this case (see
microsoft#5416). Count those packages and print a summary line,
matching the pattern used for unknown versions and explicit-upgrade pins.

Single-package upgrade now returns the distinct HRESULT so scripts can
distinguish this scenario from other not-applicable updates.
@AMDphreak AMDphreak marked this pull request as ready for review March 21, 2026 09:55
@AMDphreak AMDphreak requested a review from a team as a code owner March 21, 2026 09:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant