Skip to content

[pipeline-test-triage] BrowserWasm acceptance tests fail with MissingMethodException on MemoryExtensions.AsSpan after test SDK b [Content truncated due to length] #11181

Description

@github-actions

Summary

On PR #11178 (Azure Pipelines build 1590874, microsoft.testfx check, Linux Release and MacOS Release legs), 5 browser-wasm acceptance tests deterministically fail with a MissingMethodException (Method not found: System.Span\1(!!0) System.MemoryExtensions.AsSpan(!0)(!!0[])) thrown from inside the Microsoft.Testing.Platform host bootstrap while running under the browser-wasm AppBundle's dotnet.runtime.js`.

Affected tests (all in BrowserWasmExecutionTests.cs):

  • BrowserWasmExecution_RunsTestsUnderNode
  • BrowserWasmExecution_DotnetTestHttpTransportExercisesLiveGateway
  • BrowserWasmExecution_TrxReport_RunsWithoutPlatformNotSupported
  • BrowserWasmExecution_AzureDevOpsLivePublishingReachesStubbedRestApi
  • BrowserWasmExecution_RunSettingsEnvironmentVariables_FailsWithClearDiagnostic

Category and confidence

Regression, moderate-high confidence (7/10). The failure is a deterministic MissingMethodException (assembly/runtime-pack mismatch), reproducing with an identical call stack across all 5 tests and across two independent OS legs (Linux and macOS) in the same build. No retries were recorded and no pass was observed for any of the 5 tests in this build.

Why this is actionable

PR #11178 bumps MicrosoftNETTestSdkVersion from 18.9.0 to 18.10.0 in Directory.Packages.props and removes the separate MicrosoftTestPlatformFilterSourceVersion property (now aliased to MicrosoftNETTestSdkVersion), the same class of dependency bump that a companion PR (#11165/#11164, tracked in #11172) made. The crash occurs while Microsoft.Testing.Platform.Hosts.TestHostBuilder.SetupCommonServicesAsync calls Sha256Hasher.HashWithNormalizedCasing, which calls MemoryExtensions.AsSpan — a BCL method the browser-wasm AppBundle's bundled dotnet.runtime.js/BCL shims apparently do not expose at the version resolved after this bump. This points to a version mismatch between the updated test SDK/runtime pack and the WASM runtime pack used to build the AppBundle.

First/last occurrence and recurrence

First observed in this PR's Azure Pipelines build 1590874 (2026-09-10). Bounded PR-scoped history does not include a slow/duration-only comparison (PR history is limited to failures/retries), so a prior-build baseline for this exact signature is not available in history.json; however, the deterministic, identical-stack failure across two independent OS legs (Linux and macOS) within the same build is itself high-confidence evidence of a real regression rather than an environmental one-off.

Affected / unaffected matrix

  • Affected: Linux Release and macOS Release legs, net10.0 (browser-wasm host under net11.0 test project TFM), all 5 BrowserWasmExecutionTests methods.
  • Unaffected/not run: Windows Release leg skipped this test in this build (recorded as skipped, not evaluated).

Retry outcomes

No retries were recorded for any of the 5 tests; each failed once and was not retried, consistent with a deterministic (non-flaky) failure.

Stack excerpt (sanitized)

Error: Method not found: System.Span`1<!!0> System.MemoryExtensions.AsSpan<!0>(!!0[])
    at un (.../BrowserTestProject/bin/Release/net10.0/browser-wasm/AppBundle/_framework/dotnet.runtime.js)
    at cn (.../dotnet.runtime.js)
    at an (.../dotnet.runtime.js)
   at System.Security.Cryptography.SHA256.HashData(Byte[] source)
   at Microsoft.Testing.Platform.Helpers.Sha256Hasher.HashWithNormalizedCasing(String text)
   at Microsoft.Testing.Platform.Hosts.TestHostBuilder.AddApplicationTelemetryMetadata(IServiceProvider serviceProvider, Dictionary`2 builderMetadata)
   at Microsoft.Testing.Platform.Hosts.TestHostBuilder.SetupCommonServicesAsync(...)
   at Microsoft.Testing.Platform.Hosts.TestHostBuilder.BuildAsync(...)
   at Microsoft.Testing.Platform.Builder.TestApplicationBuilder.BuildAsync()
   at BrowserTestProject.MicrosoftTestingPlatformApplication.RunAsync(String[] args)

Build / artifact links

Azure Pipelines build 1590874 (microsoft.testfx check), Linux Release and MacOS Release legs, TestResults_Linux_Release_Attempt1 / TestResults_MacOS_Release_Attempt1 artifact families (CTRF: Microsoft.Testing.Platform.Acceptance.IntegrationTests_net11.0.ctrf.json).

Reproduction guidance

  1. Check out PR Update Microsoft.NETTestSdkVersion and related packages #11178 (bumps MicrosoftNETTestSdkVersion to 18.10.0 and removes the separate MicrosoftTestPlatformFilterSourceVersion pin).
  2. Build and run any of the 5 BrowserWasmExecutionTests acceptance tests targeting net10.0 browser-wasm on Linux or macOS.
  3. Observe the MissingMethodException on MemoryExtensions.AsSpan inside the generated dotnet.runtime.js during TestHostBuilder bootstrap.
  4. Compare the WASM runtime pack / BCL shim version bundled in the AppBundle before and after this PR's dependency bump.

Next concrete step

Diff the resolved browser-wasm runtime pack (Microsoft.NETCore.App.Runtime.Mono.browser-wasm or equivalent) and its bundled dotnet.runtime.js BCL surface before and after this PR's MicrosoftNETTestSdkVersion bump, and confirm whether the bump changes which runtime pack version is restored/used for the net10.0 browser-wasm test host, reintroducing a missing MemoryExtensions.AsSpan overload.

Likely ownership: Microsoft.Testing.Platform team (owns TestHostBuilder/Sha256Hasher and the browser-wasm host integration), with input from whoever manages the MicrosoftNETTestSdkVersion/runtime-pack alignment in Directory.Packages.props.

🤖 Automated content by GitHub Copilot. Generated by the Pipeline Test Triage workflow. · auto · 165.4 AIC · ⌖ 2.42 AIC · ⊞ 8.9K

Activity

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

    type/ai-inspectedReviewed or generated with AI assistance.type/automationCreated or maintained by an agentic workflow.type/regressionRegression from a previous release.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions