Skip to content

[release/11.0][wasm] Build tests cannot restore stable .NET 11 packages after RTM dependency flow #136326

Open

Description

@ViveliDuCh

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:

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:

<!-- 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)')) &lt;= 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:

<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

Activity

  1. dotnet-policy-service commented on Oct 22, 2026

    @dotnet-policy-service
    Contributor

    Tagging subscribers to this area: @dotnet/runtime-infrastructure
    See info in area-owners.md if you want to be subscribed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Known Build ErrorUse this to report build issues in the .NET Helix tabarea-Infrastructureblocking-clean-ciBlocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'untriagedNew issue has not been triaged by the area owner

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions