[ARM64] Fatal error 0xC000001D (Illegal Instruction) during Find-WinGetPackage / CreateCompositePackageCatalogOptions in PowerShell 7 (ARM64) #6599
Description
Relevant area(s)
WinGet CLI, PowerShell Module
Relevant command(s)
No response
Brief description of your issue
On Windows 11 ARM64 running native PowerShell 7 (ARM64), calling Find-WinGetPackage or using PowerToys Microsoft.WinGet.CommandNotFound causes an unhandled native crash terminating the process with:
Fatal error. 0xC000001D (STATUS_ILLEGAL_INSTRUCTION)
The crash occurs during COM/WinRT interop inside WinRT.ObjectReference.TryAs / ManagementDeploymentFactory.CreateCreateCompositePackageCatalogOptions when calling Marshal.QueryInterface.
Note:
- The standard CLI
winget search ...works as expected. Get-WinGetVersionworks as expected.Find-WinGetPackageworks inside Windows PowerShell 5.1 (x64 emulated via .NET Framework).Find-WinGetPackageconsistently crashes inside native PowerShell 7 ARM64 (.NET 8/9/10 CsWinRT projection).
Steps to reproduce
- Open native ARM64 PowerShell 7 (
pwsh.exe) on a Windows 11 ARM64 machine. - Run PowerShell without any user profile:
pwsh -NoProfile - Import the WinGet client module:
Import-Module Microsoft.WinGet.Client - Execute a package search query:
Find-WinGetPackage -Query 'notepad' -Count 1 - Observe the immediate fatal crash (0xC000001D) and process exit.
Alternative trigger via PowerToys:
- In PowerToys Settings, enable the "Command Not Found" feature.
- Launch a normal PowerShell 7 session.
- Type any invalid/unknown command to invoke the module.
- The process immediately terminates with code 3221225501 (0xC000001D).
Expected behavior
Find-WinGetPackage -Query 'notepad' -Count 1should successfully search and return matching packages from the catalog without crashing.- In PowerToys, when an unrecognized command is typed,
Microsoft.WinGet.CommandNotFoundshould catch the event and suggest matching WinGet packages instead of crashing the shell. - The PowerShell process (
pwsh.exe) should remain running and not exit with fatal code3221225501(0xC000001D).
Actual behavior
The PowerShell process crashes instantly with an unhandled fatal illegal instruction error and exits with code 3221225501 (0xC000001D).
Terminal output and stack trace:
Fatal error.
0xC000001D
at System.Runtime.InteropServices.Marshal.QueryInterface(IntPtr, System.Guid ByRef, IntPtr ByRef)
at WinRT.ObjectReference1[[WinRT.Interop.IUnknownVftbl, Microsoft.WinGet.Client.Engine, Version=1.26.0.0, Culture=neutral, PublicKeyToken=null]].TryAs(WinRT.IObjectReference, System.Guid, WinRT.ObjectReference1<WinRT.Interop.IUnknownVftbl> ByRef)
at WinRT.IObjectReference.TryAs[[WinRT.Interop.IUnknownVftbl, Microsoft.WinGet.Client.Engine, Version=1.26.0.0, Culture=neutral, PublicKeyToken=null]](System.Guid, WinRT.ObjectReference1<WinRT.Interop.IUnknownVftbl> ByRef) at WinRT.IObjectReference.As[[WinRT.Interop.IUnknownVftbl, Microsoft.WinGet.Client.Engine, Version=1.26.0.0, Culture=neutral, PublicKeyToken=null]](System.Guid) at WinRT.IObjectReference.As(System.Guid) at Microsoft.Management.Deployment.CreateCompositePackageCatalogOptions..ctor(WinRT.IObjectReference) at ABI.Microsoft.Management.Deployment.CreateCompositePackageCatalogOptionsRcwFactoryAttribute.CreateInstance(WinRT.IInspectable) at WinRT.DefaultComWrappers.CreateObject(IntPtr) at WinRT.DefaultComWrappers.CreateObject(IntPtr, System.Runtime.InteropServices.CreateObjectFlags) at System.Runtime.InteropServices.ComWrappers.CreateAndRegisterObjectForComInstance(IntPtr, IntPtr, System.Runtime.InteropServices.CreateObjectFlags, System.Object, IntPtr ByRef) at System.Runtime.InteropServices.ComWrappers.TryGetOrCreateObjectForComInstanceInternal(IntPtr, IntPtr, System.Runtime.InteropServices.CreateObjectFlags, System.Object, System.Object, System.Object ByRef) at System.Runtime.InteropServices.ComWrappers.GetOrCreateObjectForComInstance(IntPtr, System.Runtime.InteropServices.CreateObjectFlags) at WinRT.ComWrappersSupport.CreateRcwForComObject[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](IntPtr, Boolean) at WinRT.ComWrappersSupport.CreateRcwForComObject[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](IntPtr) at WinRT.MarshalInspectable1[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].FromAbi(IntPtr)
at WinRT.MarshalInterface1[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].FromAbi(IntPtr) at Microsoft.WinGet.Client.Engine.Helpers.ManagementDeploymentFactory.Create[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Type, System.Guid ByRef) at Microsoft.WinGet.Client.Engine.Helpers.ManagementDeploymentFactory.CreateCreateCompositePackageCatalogOptions() at Microsoft.WinGet.Client.Engine.Commands.Common.FinderCommand.GetPackageCatalogReference(Microsoft.Management.Deployment.CompositeSearchBehavior) at Microsoft.WinGet.Client.Engine.Commands.Common.FinderCommand.GetPackageCatalog(Microsoft.Management.Deployment.CompositeSearchBehavior) at Microsoft.WinGet.Client.Engine.Commands.Common.FinderCommand.FindPackages(Microsoft.Management.Deployment.CompositeSearchBehavior, UInt32, Microsoft.Management.Deployment.PackageFieldMatchOption) at Microsoft.WinGet.Client.Engine.Commands.Common.FinderExtendedCommand.FindPackages(Microsoft.Management.Deployment.CompositeSearchBehavior, Microsoft.Management.Deployment.PackageFieldMatchOption) at Microsoft.WinGet.Client.Engine.Commands.FinderPackageCommand+<>c__DisplayClass1_0.<Find>b__0() at Microsoft.WinGet.Client.Engine.Commands.Common.ManagementDeploymentCommand.Execute[[System.__Canon, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Func1<System.__Canon>)
at Microsoft.WinGet.Client.Engine.Commands.FinderPackageCommand.Find(System.String)
at Microsoft.WinGet.Client.Commands.FindPackageCmdlet.ProcessRecord()
[process exited with code 3221225501 (0xc000001d)]
Environment
[winget --info]
Windows Package Manager v1.29.380
Windows: Windows.Desktop v10.0.26300.9711
System Architecture: Arm64
Package: Microsoft.DesktopAppInstaller v1.29.380.0
PowerShell Version: PowerShell 7 (ARM64)
PowerShell WinGet Module: Microsoft.WinGet.Client (1.11.400 / Engine 1.26.0.0)
PowerToys: Microsoft.WinGet.CommandNotFound (1.0.4.0)
VC++ Runtime: ARM64 Visual C++ 14.50.35719 installed
Activity