microsoft / microsoft/foundry-local

QNNExecutionProvider fails to download/register on Snapdragon X Plus — inconsistent error text across attempts, all local/network causes ruled out

Open
#1,089 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
2.6k
Forks
369
Avg merge
2d 17h
Merged PRs (30d)
39

Description

**`Environment**

Device: Microsoft Surface Laptop 7th Edition
CPU: Snapdragon(R) X 10-core X1P64100 @ 3.40 GHz
GPU: Qualcomm(R) Adreno(TM) X1-85
NPU: Qualcomm Hexagon (Snapdragon X Plus)
RAM: 15.6 GB total
OS: Windows 11 Business, Version 25H2, OS Build 26200.9445 (stable, not Insider)
Foundry Local CLI: 0.10.3
Foundry Local Core: 1.0.0–1.2.4 (varies between cold start and restart, see below)
ORT: 1.26.0
ORT GenAI: 0.14.1 before EP registration attempt, drops to 0.0.0 after every failed registration

What happened

On every foundry server start / foundry server restart, WebGpuExecutionProvider downloads and registers successfully (direct CDN URL: https://foundrypackages-ffhrdhbxb7gpdreh.b02.azurefd.net/webgpu_ep_...zip), but QNNExecutionProvider — routed through the WinML EP acquisition path, not a direct URL — fails every single time:

WinML EP QNNExecutionProvider: Starting download and registration (state: "NotPresent").
...
WinML EP QNNExecutionProvider: Download failed (result: "Failure", error: The product is not applicable or cannot be found.
). Will retry on next attempt.

On a later attempt (fresh reinstall, different network), the same failure occurred but with a different error string:

error: The text associated with this error code could not be found.

foundry status consistently shows ORT GenAI: 0.0.0 after the failed registration, vs. 0.14.1 right at daemon init before DownloadAndRegisterEpsAsync runs.

foundry model list --device npu returns 0 results, despite Available variants: 81 in the catalog and NPU showing correctly detected in foundry status.

Causes ruled out, with direct evidence

Non-admin permissions: WebGPU EP registers successfully every time as a standard (non-admin) user → not a general elevation/permission issue.
Windows Insider channel: confirmed stable 25H2 (26200.9445), not Dev/Canary.
"Accounts: Block Microsoft accounts" policy: this device had this policy enabled (error 0x800704ec when signing into MSA). Created a scoped policy exception, confirmed working (MSA sign-in succeeded), restarted Foundry — identical failure persisted.
Network filtering / proxy / TLS inspection: reproduced the identical failure on an unrestricted, unfiltered internet connection.
Corrupted installation: fully uninstalled (winget uninstall Microsoft.FoundryLocal, removed .foundry cache dir) and reinstalled fresh via winget install Microsoft.FoundryLocal — identical failure on first run.

Additional note: unlike WebGPU, the Foundry daemon log never surfaces the actual URL/endpoint QNNExecutionProvider is trying to reach before failing — the WinML EP acquisition path appears to be opaque to Foundry itself (likely delegated to a Windows ML / Store-licensing component), which limits further client-side diagnosis without a network capture.

Expected behavior
QNNExecutionProvider should download and register successfully on a certified Snapdragon X device (per foundry status hardware detection), or fail with a stable, meaningful error message consistent across attempts.

Logs
Full foundry server logs -n 200 output available on request.

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure during foundry server start or restart and inspect the daemon logs around DownloadAndRegisterEpsAsync. Compare the WinML QNNExecutionProvider acquisition path with the successful WebGpuExecutionProvider download, using the reported device and clean-install conditions. Done means QNN registers on the Snapdragon device or returns a stable, meaningful error.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
ai-infra-agents, operating-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.