Repository navigation
[release/11.0][wasm] Build tests cannot restore stable .NET 11 packages after RTM dependency flow #136326
Description
Build Information
Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1645212
Build error leg or test failing: browser-wasm Linux/Windows Release WasmBuildTests and CoreCLR_WasmBuildTests.
The tested merge was aa0bd6bb49b9bc397793281026ca6550cdeceef7, combining release/11.0 with PR head 853ed1a7f2f4c6e1ab93e2b74b1e79e6c39a5512.
Error Message
{
"ErrorMessage": "error NU1102: Unable to find package Microsoft.NET.ILLink.Tasks with version (>= 11.0.0)",
"BuildRetry": false,
"ExcludeConsoleLog": false
}Failure details:
error NU1102: Unable to find package Microsoft.NET.ILLink.Tasks with version (>= 11.0.0)
error NU1102: - Found 673 version(s) in dotnet11 [ Nearest version: 11.0.0-rtm.26480.113 ]
error NU1102: - Found 111 version(s) in dotnet-public [ Nearest version: 11.0.0-rc.2.26504.105 ]
error NU1102: - Found 0 version(s) in nuget-local
error NU1102: Unable to find package Microsoft.AspNetCore.App.Internal.Assets with version (>= 11.0.0)
The excerpt omits generated project paths. Other affected cases request stable Microsoft.AspNetCore.Components.WebAssembly, Microsoft.AspNetCore.Components.Gateway, and Microsoft.NET.Sdk.WebAssembly.Pack packages.
Affected legs:
- Linux and Windows Mono workload build tests.
- Windows Mono NoWebcil build tests.
- Linux and Windows CoreCLR NoWorkload build tests.
- Additional JavaScript-bundler, no-fingerprint, no-Webcil, and no-workload variants.
The Helix monitor reports 203 failed WBT work items in these groups. The shared restore failure is visible in their consoles, uploaded test results, or representative binlogs for the two Windows WasmNativeDefaultsTests items whose assertions truncate the underlying build output. This is a work-item count, not a count of independently diagnosed test assertions.
Console Log:
- Linux Mono: https://helixr1107v0xd1eu3ibi6ka.blob.core.windows.net/dotnet-runtime-refs-pull-136229-merge-b9b4278419d2482188/WBT-Workloads-MONO-ST-Wasm.Build.Tests.BuildPublishTests/1/console.8350003c.log?helixlogtype=result
- Linux CoreCLR: https://helixr1107v0xd1eu3ibi6ka.blob.core.windows.net/dotnet-runtime-refs-pull-136229-merge-74e731e192284358bf/WBT-NoWorkload-CLR-ST-Wasm.Build.Tests.AppSettingsTests/1/console.61b81ee0.log?helixlogtype=result
Many Windows consoles contain only the wrapper invocation. Their uploaded xharness-output\testResults.xml and build binlogs contain the useful failure details.
First build in window:
- First investigated occurrence: build 1645212, completed 2026-10-22 13:42:34 UTC. Earlier occurrence/onset has not been established.
Root-cause assessment:
The backflow advances the Emscripten manifest transport dependency from RC2 to 11.0.100-rtm.26521.105. The existing eng/Versions.props logic selects this version for SdkVersionForWorkloadTesting. The resulting test SDK reports 11.0.100 and requests stable 11.0.0 packages that are not available from the configured feeds in this build.
This workload-test SDK is separate from the bootstrap SDK in global.json, which is still 11.0.100-rc.2.26504.105. Updating or checking only the bootstrap pin does not explain the workload-test restore.
Source selection:
Lines 22 to 37 in 853ed1a
| <!-- SdkVersionForWorkloadTesting is used to compute the sdk band and version for workload testing. | |
| The published manifests are built in dotnet/sdk so these values are for testing purposes only. | |
| We use the manifest transport package version number unless it is lower | |
| than the sdk version specified in global.json | |
| --> | |
| <!-- NETCoreSdkVersion is normally set by the SDK, but for non-SDK projects we need extract from global.json --> | |
| <_GlobalJsonContent>$([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)../global.json'))</_GlobalJsonContent> | |
| <_GlobalJsonSdkVersion Condition="'$(_GlobalJsonContent)' != ''">$([System.Text.RegularExpressions.Regex]::Match($(_GlobalJsonContent), '"sdk"\s*:\s*\{[^\}]*"version"\s*:\s*"([^"]+)"', System.Text.RegularExpressions.RegexOptions.Singleline).Groups[1].Value)</_GlobalJsonSdkVersion> | |
| <_DotnetSdkVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest110100TransportVersion)</_DotnetSdkVersion> | |
| <SdkVersionForWorkloadTesting Condition="$([System.String]::Compare('$(_GlobalJsonSdkVersion)', '$(_DotnetSdkVersion)')) <= 0">$(_DotnetSdkVersion)</SdkVersionForWorkloadTesting> | |
| <SdkVersionForWorkloadTesting Condition="'$(SdkVersionForWorkloadTesting)' == ''">$(_GlobalJsonSdkVersion)</SdkVersionForWorkloadTesting> | |
| <SdkMajorVersion>$([System.String]::Copy('$(SdkVersionForWorkloadTesting)').Split('.')[0])</SdkMajorVersion> | |
| <SdkBandVersion>$(SdkMajorVersion).0.100</SdkBandVersion> | |
| <SdkPreReleaseLabel>$([System.Text.RegularExpressions.Regex]::Match($(SdkVersionForWorkloadTesting), '-(?!rtm|servicing)(.+)\.[^.]+\.[^.]+$').Groups[1].Value)</SdkPreReleaseLabel> | |
| <SdkBandVersionForWorkload_FromRuntimeVersions Condition="'$(SdkPreReleaseLabel)' == ''">$(SdkBandVersion)</SdkBandVersionForWorkload_FromRuntimeVersions> | |
| <SdkBandVersionForWorkload_FromRuntimeVersions Condition="'$(SdkPreReleaseLabel)' != ''">$(SdkBandVersion)-$(SdkPreReleaseLabel)</SdkBandVersionForWorkload_FromRuntimeVersions> |
SDK acquisition:
Lines 49 to 74 in 853ed1a
| <PropertyGroup Condition="'$(SdkVersionForWorkloadTesting)' != ''"> | |
| <_DotNetInstallCommand Condition="!$([MSBuild]::IsOSPlatform('windows'))" | |
| >$(_DotNetInstallScriptPath) -i $(_SdkWithNoWorkloadPath) -v $(SdkVersionForWorkloadTesting)</_DotNetInstallCommand> | |
| <_DotNetInstallCommand Condition="$([MSBuild]::IsOSPlatform('windows'))" | |
| >$(_DotNetInstallScriptPath) -InstallDir $(_SdkWithNoWorkloadPath) -Version $(SdkVersionForWorkloadTesting)</_DotNetInstallCommand> | |
| </PropertyGroup> | |
| <PropertyGroup Condition="'$(SdkVersionForWorkloadTesting)' == ''"> | |
| <_DotNetInstallCommand Condition="'$(DotNetInstallArgumentsForWorkloadsTesting)' != ''">$(_DotNetInstallScriptPath) $(DotNetInstallArgumentsForWorkloadsTesting)</_DotNetInstallCommand> | |
| </PropertyGroup> | |
| <ItemGroup> | |
| <DefaultPropertiesForNuGetBuild Include="Configuration=$(Configuration)" /> | |
| <DefaultPropertiesForNuGetBuild Include="ContinuousIntegrationBuild=$(ContinuousIntegrationBuild)" /> | |
| </ItemGroup> | |
| <Target Name="ProvisionDotNetForWorkloadTesting" Condition="!Exists($(_SdkWithNoWorkloadStampPath))"> | |
| <Error Text="%24(_SdkWithNoWorkloadPath) is not set" Condition="'$(_SdkWithNoWorkloadPath)' == ''" /> | |
| <Error Text="%24(_DotNetInstallCommand) not set" Condition="'$(_DotNetInstallCommand)' == ''" /> | |
| <Message Text="** Installing sdk $(SdkVersionForWorkloadTesting) for workload based tests into $(_SdkWithNoWorkloadPath)" | |
| Condition="'$(SdkVersionForWorkloadTesting)' != ''" | |
| Importance="High" /> | |
| <Message Text="** Installing latest sdk for workload based tests into $(_SdkWithNoWorkloadPath)" | |
| Condition="'$(SdkVersionForWorkloadTesting)' == ''" | |
| Importance="High" /> |
Main and release/8.0, release/9.0, release/10.0, and release/11.0 were checked for relevant SDK-selection configuration and existing fixes. Main uses different .NET 12 alpha inputs; release/10.0 already leaves the manifest-derived SDK selection disabled and falls back to its bootstrap SDK. Neither observation proves a validated fix for this .NET 11 package/feed mismatch. No exact existing tracker or applicable merged fix was found in the searches performed.
Existing KBE match needs review:
Build Analysis associates seven occurrences with #125244, including other methods in BuildPublishTests. That KBE's ErrorMessage is only BlazorWasm_CannotAOT_InDebug, so a match to that token in a shared console is not specific to the underlying failure. Its original example successfully restores packages and later lacks the expected AOT diagnostic. The current cases fail earlier while restoring packages. This test-name match does not establish that #125244 tracks the current restore root cause; the existing KBE signature should be reviewed rather than treating it as adequate coverage.
Recommended action:
Have the WASM build/SDK/codeflow owners align the workload-test SDK and its package sources with publicly restorable package versions. A temporary pin of the workload-test SDK to a compatible, publicly usable RC build is a candidate workaround, but its workload manifest/feature-band compatibility needs validation. Alternatively, supply the intended stable package versions through an approved CI feed when they are available.
Do not treat a retry or UseOptimizedPublish=false as a fix for this restore failure. The latter addresses a separate NativeAOT target-ordering problem.
No local builds or tests were run, and neither remediation was validated. Binlogs were replayed for inspection only.
Note
This issue was generated with GitHub Copilot assistance.
Report
| Build | Repository | Test | Pull Request |
|---|---|---|---|
| 1653246 | dotnet/runtime | Wasm.Build.Tests.NativeLibraryTests.ProjectWithNativeReference | |
| 1651155 | dotnet/runtime | Wasm.Build.Tests.BuildPublishTests.BuildThenPublishNoAOT | |
| 1650601 | dotnet/runtime | Wasm.Build.Tests.BuildPublishTests.BuildThenPublishNoAOT | |
| 1650108 | dotnet/runtime | Wasm.Build.Tests.RebuildTests.IncrementalBuild_PropertyChange_RunsBootJson | |
| 1649817 | dotnet/runtime | Wasm.Build.Tests.ModuleConfigTests.SymbolMapFileNotEmitted | |
| 1647292 | dotnet/runtime | Wasm.Build.Tests.RebuildTests.IncrementalBuild_PropertyChange_RunsBootJson | #136382 |
| 1646093 | dotnet/runtime | Wasm.Build.Tests.WasmRunOutOfAppBundleTests.RunOutOfAppBundle | |
| 1646146 | dotnet/runtime | Wasm.Build.Tests.PreloadingTests.PreloadAssets | #136338 |
| 1645212 | dotnet/runtime | Wasm.Build.NativeRebuild.Tests.SimpleSourceChangeRebuildTest.SimpleStringChangeInSource | #136229 |
Summary
| 24-Hour Hit Count | 7-Day Hit Count | 1-Month Count |
|---|---|---|
| 1 | 9 | 9 |
Known issue validation
Build: 🔎 https://dev.azure.com/dnceng-public/public/_build/results?buildId=1645212
Error message validated: [error NU1102: Unable to find package Microsoft.NET.ILLink.Tasks with version (>= 11.0.0)]
Result validation: ✅ Known issue matched with the provided build.
Validation performed at: 10/27/2026 6:09:44 PM UTC
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsNo status
Activity
dotnet-policy-service commentedon Oct 22, 2026
Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.