Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WinGet download doesn't work through a proxy #5030

Open
nidietr-MSFT opened this issue Dec 2, 2024 · 0 comments
Open

WinGet download doesn't work through a proxy #5030

nidietr-MSFT opened this issue Dec 2, 2024 · 0 comments
Labels
Command-Download Issue related to WinGet Download Issue-Feature This is a feature request for the Windows Package Manager client.

Comments

@nidietr-MSFT
Copy link
Contributor

Brief description of your issue

WinGet download doesn't work through a proxy.

This is because SfsClient wasn't supporting going through proxies
Client: proxy support #84

Which is being worked by the SFS team in
Adding support for a custom proxy input #218

Need then to implement this SFS proxy support from WinGet.

Steps to reproduce

PS C:\> winget settings --enable ProxyCommandLineOptions
Enabled admin setting 'ProxyCommandLineOptions'.

PS C:\> winget settings set --setting DefaultProxy http://<PROXY_IP>:<PROXY_PORT>
Set admin setting 'DefaultProxy' to 'http://<PROXY_IP>:<PROXY_PORT>'.

Then trigger downloading an offline package, for instance using:
winget download 9WZDNCRFHVN5 --skip-dependencies --accept-source-agreements --accept-package-agreements

Expected behavior

The expected behavior would be having the download of both offline packages and license to work through a proxy, once correctly set up from WinGet proxy setting.

Actual behavior

When a direct connection isn't possible to storeapps.api.cdp.microsoft.com:443, WinGet will fail to download the package with "Failed to retrieve Microsoft Store package download information"

PS C:\> winget download 9WZDNCRFHVN5 --skip-dependencies --accept-source-agreements --accept-package-agreements
Found Windows Calculator [9WZDNCRFHVN5] Version Unknown
This package is provided through Microsoft Store. winget may need to acquire the package from Microsoft Store on behalf of the current user.
Agreements for Windows Calculator [9WZDNCRFHVN5] Version Unknown
Version: Unknown
Publisher: Microsoft Corporation
Publisher Url: http://windows.microsoft.com
Publisher Support Url: http://go.microsoft.com/fwlink/p/?LinkId=282454
License: ms-windows-store://pdp/?ProductId=9WZDNCRFHVN5
Privacy Url: http://go.microsoft.com/fwlink/?LinkID=521839
Copyright: (c) Microsoft Corporation
Agreements:
  Category: Utilities & tools
  Pricing: Free
  Free Trial: No
  Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
  Seizure Warning: https://aka.ms/microsoft-store-seizure-warning
  Store License Terms: https://aka.ms/microsoft-store-license

Dependencies skipped.
Microsoft Store package download requires Microsoft Entra Id authentication. Authentication prompt may appear when necessary. Authenticated information will be shared with Microsoft services for access authorization. For Microsoft Store package licensing, the Microsoft Entra Id account needs to be a member of Global Administrator, User Administrator, or License Administrator.
Multiple Microsoft Store packages may be downloaded targeting different platforms and architectures. --platform, --architecture can be used to filter the packages.
Retrieving Microsoft Store package download information
Failed to retrieve Microsoft Store package download information

And the verbose logs showing SFSClient fails with "FAILED [ConnectionUnexpectedError] Failed to connect to storeapps.api.cdp.microsoft.com port 443 after 28 ms: Could not connect to server"

2024-12-02 19:43:40.184 [CORE] WinGet, version [1.9.25200], activity [{157EC57A-73A4-4A2A-89C7-A5B92D502700}]
2024-12-02 19:43:40.185 [CORE] OS: Windows.Desktop v10.0.26100.2314
2024-12-02 19:43:40.185 [CORE] Command line Args: "C:\Users\Nicolas\AppData\Local\Microsoft\WindowsApps\winget.exe" download 9WZDNCRFHVN5 --skip-dependencies --accept-source-agreements --accept-package-agreements
2024-12-02 19:43:40.185 [CORE] Package: Microsoft.DesktopAppInstaller v1.24.25200.0
2024-12-02 19:43:40.185 [CORE] IsCOMCall:0; Caller: winget-cli
2024-12-02 19:43:40.192 [CLI ] WinGet invoked with arguments: 'download' '9WZDNCRFHVN5' '--skip-dependencies' '--accept-source-agreements' '--accept-package-agreements'
2024-12-02 19:43:40.193 [CLI ] Found subcommand: download
2024-12-02 19:43:40.193 [CLI ] Leaf command to execute: root:download
2024-12-02 19:43:40.197 [CLI ] Executing command: download
2024-12-02 19:43:40.205 [REPO] Default source requested, multiple sources available, adding all to source references.
2024-12-02 19:43:40.205 [REPO] Adding to source references msstore
2024-12-02 19:43:40.205 [CORE] Default proxy is http://172.17.52.179:3128
2024-12-02 19:43:40.205 [REPO] Setting proxy for REST HTTP Client helper to http://172.17.52.179:3128
[...]
2024-12-02 19:43:41.790 [CORE] Message: SFSClient instance created successfully. Version: 1.0.0 File: C:\__w\1\s\external\pkg\src\SfsClient\sfs-client\client\src\SFSClient.cpp Line: 26 Function: SFS::SFSClient::Make
2024-12-02 19:43:41.794 [CORE] Message: Requesting latest version of [e632fe90-a5ba-43aa-bf81-9de8413e83d8] from URL [https://storeapps.api.cdp.microsoft.com/api/v2/contents/storeapps/namespaces/default/names/e632fe90-a5ba-43aa-bf81-9de8413e83d8/versions/latest?action=select] File: C:\__w\1\s\external\pkg\src\SfsClient\sfs-client\client\src\details\SFSClientImpl.cpp Line: 194 Function: SFS::details::SFSClientImpl<class SFS::details::CurlConnectionManager>::GetLatestVersion
2024-12-02 19:43:41.794 [CORE] Message: Request attempt 1 out of 4 (cv: CTs2j9kj0EGL6CxT.0) File: C:\__w\1\s\external\pkg\src\SfsClient\sfs-client\client\src\details\connection\CurlConnection.cpp Line: 347 Function: SFS::details::CurlConnection::CurlPerform
2024-12-02 19:43:41.825 [CORE] Message: FAILED [ConnectionUnexpectedError] Failed to connect to storeapps.api.cdp.microsoft.com port 443 after 28 ms: Could not connect to server (C:\__w\1\s\external\pkg\src\SfsClient\sfs-client\client\src\details\connection\CurlConnection.cpp:357) File: C:\__w\1\s\external\pkg\src\SfsClient\sfs-client\client\src\details\ErrorHandling.cpp Line: 23 Function: SFS::details::LogFailedResult
2024-12-02 19:43:41.835 [CORE] Message: FAILED [ConnectionUnexpectedError] Failed to connect to storeapps.api.cdp.microsoft.com port 443 after 28 ms: Could not connect to server (C:\__w\1\s\external\pkg\src\SfsClient\sfs-client\client\src\details\SFSClientImpl.cpp:209) File: C:\__w\1\s\external\pkg\src\SfsClient\sfs-client\client\src\details\ErrorHandling.cpp Line: 23 Function: SFS::details::LogFailedResult
2024-12-02 19:43:41.836 [CORE] Message: FAILED [ConnectionUnexpectedError] Failed to connect to storeapps.api.cdp.microsoft.com port 443 after 28 ms: Could not connect to server (C:\__w\1\s\external\pkg\src\SfsClient\sfs-client\client\src\details\SFSClientImpl.cpp:385) File: C:\__w\1\s\external\pkg\src\SfsClient\sfs-client\client\src\details\ErrorHandling.cpp Line: 23 Function: SFS::details::LogFailedResult
2024-12-02 19:43:41.836 [CORE] Failed to call SfsClient GetLatestAppDownloadInfo. Error code: 2147487745 Message: Failed to connect to storeapps.api.cdp.microsoft.com port 443 after 28 ms: Could not connect to server
2024-12-02 19:43:41.837 [FAIL] C:\__w\1\s\external\pkg\src\AppInstallerCommonCore\MSStoreDownload.cpp(925)\WindowsPackageManager.dll!00007FFE073BFBC8: (caller: 00007FFE072B6CF2) Exception(1) tid(17a4) 8A150081     Msg:[Failed to call SfsClient GetLatestAppDownloadInfo. ErrorCode: 2147487745 Message: Failed to connect to storeapps.api.cdp.microsoft.com port 443 after 28 ms: Could not connect to server] 

2024-12-02 19:43:41.837 [CLI ] Getting MSStore package download info failed. Error code: -1978335103
2024-12-02 19:43:41.837 [CLI ] Terminating context: 0x8a150081 at C:\__w\1\s\external\pkg\src\AppInstallerCLICore\Workflows\MSStoreInstallerHandler.cpp:140


Environment

PS C:\> winget --info
Windows Package Manager v1.9.25200
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.26100.2314
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.24.25200.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

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                        Disabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride                     Disabled
LocalArchiveMalwareScanOverride           Disabled
ProxyCommandLineOptions                   Enabled
DefaultProxy                              http://172.17.52.179:3128
@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs-Triage Issue need to be triaged label Dec 2, 2024
@denelon denelon added Command-Download Issue related to WinGet Download Issue-Feature This is a feature request for the Windows Package Manager client. and removed Needs-Triage Issue need to be triaged labels Dec 2, 2024
JohnMcPMS added a commit that referenced this issue Dec 10, 2024
Pulling SfsClient subtree release 1.1.0
[SfsClient Release
1.1.0](https://github.com/microsoft/sfs-client/releases/tag/1.1.0)

Which brought especially
[SfsClient - Client: proxy support
#84](microsoft/sfs-client#218)

This subtree update is required for WinGet Download Proxy support 
[WinGet download doesn't work through a proxy
#5030](#5030)

Also requires passing the appropriate proxy to SfsClient which is done
as part of separate PR
[Allows setting WinGet proxy setting as SFS Client Proxy
#5032](#5032)
JohnMcPMS pushed a commit that referenced this issue Dec 11, 2024
Allows setting WinGet proxy setting as the SFS Client Proxy.

Fixes the issue below
[WinGet download doesn't work through a proxy
#5030](#5030)

This PR requires SfsClient subtree updated to 1.1.0
[SfsClient update 1.1.0 for proxy support
#5052](#5052)

Which brings especially
[Adding support for a custom proxy input
#218](microsoft/sfs-client#218)

This PR replaces closed PR below
[Allows setting WinGet proxy setting as SFS Client Proxy
#5032](#5032)

<!-- To check a checkbox place an "x" between the brackets. e.g: [x] -->

- [x] I have signed the [Contributor License
Agreement](https://cla.opensource.microsoft.com/microsoft/winget-pkgs).
- [x] This pull request is related to an issue.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Command-Download Issue related to WinGet Download Issue-Feature This is a feature request for the Windows Package Manager client.
Projects
None yet
Development

No branches or pull requests

2 participants