Skip to content

Conversation

@guimafelipe
Copy link
Contributor

@guimafelipe guimafelipe commented Jan 7, 2026

Replicating #6021

On current telemetry on experimental builds, the majority of the failures on the deployment initialize method is due to ERROR_INSTALL_PACKAGE_DOWNGRADE.

This PR tracks one of the possible ways of that happening in the current code.

When we call GetStatus() (either by itself or inside the Initialize() method), it tries to go over all the packages (Main and Singleton, in that order) and check if they are already installed or not (in the method VerifyPackage()).

The problem is that in the current way this is written, if the Main package is not installed in the machine, but the Singleton package is installed in a higher version, in the for loop, it will verify that Main is not installed and break from the loop. This break will make Singleton package not be verified, and it will not be added to the global map that tracks the versions of the currently installed packages.

Then, on the AddOrRegisterPackages() method in the Deploy stage, we will try to install both packages. But as Singleton was not added to the g_existingTargetPackagesIfHigherVersion map because of the early break, it will attempt to install it when a higher version is already installed.

A microsoft employee must use /azp run to validate using the pipelines below.

WARNING:
Comments made by azure-pipelines bot maybe inaccurate.
Please see pipeline link to verify that the build is being ran.

For status checks on the main branch, please use TransportPackage-Foundation-PR
(https://microsoft.visualstudio.com/ProjectReunion/_build?definitionId=81063&_a=summary)
and run the build against your PR branch with the default parameters.

@guimafelipe
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@guimafelipe guimafelipe marked this pull request as ready for review January 8, 2026 04:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants