microsoft / microsoft/winget-cli

`winget` hangs prompting for approval of source agreement terms in PowerShell 7.4.0-preview.6

Open
#3,742 13 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Issue-Bug
Dominant language
C++
Stars
26.4k
Forks
1.8k
Avg merge
1d 11h
Merged PRs (30d)
15

Description

Brief description of your issue

(follow-up to https://github.com/PowerShell/PowerShell/issues/20452)

When winget needs to prompt for approval of the source license terms, it hangs when run under PowerShell 7.4.0-preview.6 running on Windows 11 10.0.22621.2361.amd64fre.ni_release.220506-1250 within Windows Terminal Preview 1.19.2309.25002.

This works fine under PowerShell 7.3.7.

PS> winget list smartm
The `msstore` source requires that you view the following agreements before using.
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
The source requires the current machine's 2-letter geographic region to be sent to the backend service to function properly (ex. "US").

Do you agree to all the source agreements terms?
[Y] Yes  [N] No:

Entering 'Y' at this point does nothing: winget cannot read keyboard input.

Steps to reproduce

Run this Update-WinGetSources.ps1 PowerShell script:

#requires -RunAsAdministrator

winget source reset --force
$msix = Join-Path -Path $env:TEMP -ChildPath 'source.msix'
Invoke-WebRequest https://cdn.winget.microsoft.com/cache/source.msix -OutFile $msix
Add-AppXPackage -Path $msix
Remove-Item -Path $msix
winget source update

Then invoke winget list smartm.

At the prompt, type Y

Expected behavior
PS> winget list smartm
The `msstore` source requires that you view the following agreements before using.
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
The source requires the current machine's 2-letter geographic region to be sent to the backend service to function properly (ex. "US").

Do you agree to all the source agreements terms?
[Y] Yes  [N] No: Y
Actual behavior
PS> winget list smartm
The `msstore` source requires that you view the following agreements before using.
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
The source requires the current machine's 2-letter geographic region to be sent to the backend service to function properly (ex. "US").

Do you agree to all the source agreements terms?
[Y] Yes  [N] No:

Keyboard input is ignored. The winget.exe process needs to be killed.

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

Windows: Windows.Desktop v10.0.22621.2361
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.21.2771.0

Winget Directories
-----------------------------------------------------------------------------------------------------------------------
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\Diag…
User Settings                      %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\sett…
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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing winget list smartm after running Update-WinGetSources.ps1 under PowerShell 7.4.0-preview.6, then compare it with PowerShell 7.3.7 and the Windows Terminal environment described here. Trace why keyboard input is ignored at the source-agreement prompt; done means entering Y is accepted without killing winget.exe.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, powershell
Domain
cli, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.