Skip to content

Strangely phrased error when having set 0 as an InstallerSuccessCodes value. #5988

@DandelionSprout

Description

@DandelionSprout

Relevant area(s)

WinGet CLI

Relevant command(s)

winget validate

Brief description of your issue

I noticed while working on microsoft/winget-pkgs#328444 that the pipeline artifacts for that one specific software treated an exit code 0 for an executable as being a fail (if I'm not remembering monumentally wrong).

So I added:

InstallerSuccessCodes:
- 0

And it's safe to say that I was not prepared for the, sorry to say, word salad error message that then resulted when I ran winget validate --manifest (...):

"Target should not validate against schema specified in 'not' constraint."

Steps to reproduce

  1. Have a Winget manifest locally saved on the PC.
  2. Add the following section to that manifest's Installer.yaml:
InstallerSuccessCodes:
- 0
  1. Run winget validate --manifest (...) on that manifest.
  2. Receive whatever error this is:
Manifest validation failed.
Manifest Error: Schema Error. [Schema validation failed.
Error context: <root>[InstallerSuccessCodes][0] Description: Target should not validate against schema specified in 'not' constraint.
Error context: <root>[InstallerSuccessCodes] Description: Failed to validate item #0 in array.
Error context: <root> Description: Failed to validate against schema associated with property name 'InstallerSuccessCodes'.
] File: (...).installer.yaml

Expected behavior

Either:
A) winget validate accepts 0 as an InstallerSuccessCodes.
or
B) The error message is understandably written.

Actual behavior

The error message requires at least a doctorate degree in several fields in order to intuitively understand what it means.

Environment

Windows Package Manager v1.12.440
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.26200.7623
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.27.440.0

Winget Directories
-------------------------------------------------------------------------------------------------------------------------------
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
User Settings                      %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
Portable Links Directory (User)    %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User)       %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root              C:\Program Files\WinGet\Packages
Portable Package Root (x86)        C:\Program Files (x86)\WinGet\Packages
Installer Downloads                %USERPROFILE%\Downloads
Configuration Modules              %LOCALAPPDATA%\Microsoft\WinGet\Configuration\Modules

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Admin Setting                             State
--------------------------------------------------
LocalManifestFiles                        Enabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride                     Enabled
LocalArchiveMalwareScanOverride           Enabled
ProxyCommandLineOptions                   Disabled
DefaultProxy                              Disabled

Metadata

Metadata

Assignees

No one assigned

    Labels

    Command-ValidateIssue related to WinGet ValidateIssue-BugIt either shouldn't be doing this or needs an investigation.Needs-TriageIssue needs to be triaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions