Skip to content

Validation fails when a package's installer manifest has the InstallerLocale, but its dependencies do not specify the InstallerLocale. #335187

@DuckDuckStudio

Description

@DuckDuckStudio

I found that when the Validation Pipeline validate the installation, if the package's installer manifest specifies the InstallerLocale, it passes the --locale <InstallerLocale> parameter to WinGet.
But when the package's dependency don't specify the InstallerLocale, the installation will failed (due "No suitable installer found"), ultimately causing the entire validation to fail.

Running winget install --id Microsoft.DotNet.Runtime.8 --accept-source-agreements --locale en-us --accept-package-agreements
End winget install --id Microsoft.DotNet.Runtime.8 --accept-source-agreements --locale en-us --accept-package-agreements
...
Running winget install --manifest C:\Users\validator\AppData\Local\Temp\Manifest.yaml --ignore-local-archive-malware-scan --locale en-us --accept-package-agreements
End winget install --manifest C:\Users\validator\AppData\Local\Temp\Manifest.yaml --ignore-local-archive-malware-scan --locale en-us --accept-package-agreements
Installation failed with exit code -1978334972

The verbose log should looks like this:

2026-01-30 16:36:16.363 [CLI ] Starting installer selection.
2026-01-30 16:36:16.363 [CLI ] Installer [X64,burn,Unknown,] not applicable: Installer locale does not match required locale: Required locales: [en-us] Or does not satisfy compatible match for Preferred Locales: [...]
2026-01-30 16:36:16.363 [CLI ] Installer [X86,burn,Unknown,] not applicable: Installer locale does not match required locale: Required locales: [en-us] Or does not satisfy compatible match for Preferred Locales: [...]
2026-01-30 16:36:16.363 [CLI ] Installer [Arm64,burn,Unknown,] not applicable: Installer locale does not match required locale: Required locales: [en-us] Or does not satisfy compatible match for Preferred Locales: [...]
2026-01-30 16:36:16.363 [CLI ] Installer [Arm64,burn,Unknown,] not applicable: Machine is not compatible with Arm64
2026-01-30 16:36:16.426 [CLI ] Terminating context: 0x8a150010 at C:\__w\1\s\external\pkg\src\AppInstallerCLICore\Workflows\InstallFlow.cpp:13a

Here are a few examples where these PRs encountered this situation:

Many common dependencies do not specify the InstallerLocale, such as Microsoft.DotNet.Runtime.10 and Microsoft.VCRedist.2015+.x64.
In some cases, inconsistencies between the locales of dependency and packages are also expected. (#322916 (comment))


In my personal opinion, for dependencies, maybe the --locale option should be treated as a preference rather than a requirement.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs-TriageThis work item needs to be triaged by a member of the core team.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions