Skip to content

[Known Build Error] VirtualizationTest.QuickGrid_InitialIndex_TallContainer_NearEnd_FillsViewportWithoutUserScroll — top rendered index was -1 #68708

Description

@lewing

Build Information

Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1563047
Build error leg or test failing: aspnetcore-components-e2e / Test: Blazor E2E tests on Linux (Mono and CoreCLR) / Microsoft.AspNetCore.Components.E2ETests
Pull request: #68704 (unrelated, docs-only — failure also reproduces on main)

Error Message

{
  "ErrorMessage": "should remain aligned with the viewport top once the last item has loaded, but top rendered index was -1",
  "BuildRetry": false,
  "ExcludeConsoleLog": false
}

Description

VirtualizationTest.QuickGrid_InitialIndex_TallContainer_NearEnd_FillsViewportWithoutUserScroll fails intermittently on the Blazor E2E legs. The failure is not confined to one render mode or one leg:

  • Both theory cases (useProvider: true and useProvider: false) fail.
  • Both the WebAssembly variant (Tests.VirtualizationTest) and the Interactive Server variant (ServerExecutionTests.ServerVirtualizationTest) fail.
  • It has been observed on both the Mono and CoreCLR legs.

The test mounts QuickGridScrollComponent, sizes the scroll container to 2000px, switches to variable item heights, unloads the list, sets InitialItemIndex = 950, and reloads. It then waits for the top rendered index to settle on 950. When it fails, no items are rendered at all — the top rendered index is reported as -1 with scrollTop=0, i.e. the list never repopulated after the reload rather than landing at the wrong offset.

Assertion:

OpenQA.Selenium.BrowserAssertFailedException : Xunit.Sdk.TrueException: Item 950 should remain aligned with the viewport top once the last item has loaded, but top rendered index was -1, scrollTop=0.

Stack trace:

   at Microsoft.AspNetCore.E2ETesting.WaitAssert.WaitAssertCore[TResult](IWebDriver driver, Func`1 assertion, TimeSpan timeout) in src/Shared/E2ETesting/WaitAssert.cs:line 160
   at Microsoft.AspNetCore.E2ETesting.WaitAssert.True(IWebDriver driver, Func`1 actual, String message) in src/Shared/E2ETesting/WaitAssert.cs:line 43
   at Microsoft.AspNetCore.Components.E2ETest.Tests.VirtualizationTest.QuickGrid_InitialIndex_TallContainer_NearEnd_FillsViewportWithoutUserScroll(Boolean useProvider) in src/Components/test/E2ETest/Tests/VirtualizationTest.cs:line 5767

Origin: the test was added on 2026-08-21 by fde48e9 — "Fix InitialItemIndex viewport underfill for small items in big container or on window resize" (#67936). Every observed failure post-dates that commit.

Observed occurrences

Surveyed the 12 most recent failed aspnetcore-components-e2e builds (all 2026-08-21). 6 of 12 matched this signature, across 5 distinct branches/PRs:

Build Branch / PR Leg Failing variant
1562769 PR #68691 CoreCLR Tests.VirtualizationTest, both useProvider
1562788 PR #68700 Mono ServerVirtualizationTest, useProvider: False
1562908 refs/heads/main Mono
1562986 PR #68663 Mono ServerVirtualizationTest, useProvider: True
1563047 PR #68704 (docs-only) Mono Tests.VirtualizationTest
1563228 PR #68701 Mono ServerVirtualizationTest, both useProvider

Passing counter-example: 1563027 (refs/heads/main) — the test ran and passed, flagged Long Running at 33s.

The remaining failed builds in the window failed on unrelated tests (VirtualizationTest.CancelsOutdatedRefreshes_Async, QuickGridInteractiveCompatTest.PaginatorCorrectItemsPerPage, BlazorWebJsInitializersTest.InitializersRunsModernCallbacksByDefaultWhenPresent, and the already-tracked QuickGrid_ScrollToItem_NegativeIndex_ScrollsToTop from #68559).

It reproduces on main and on unrelated PRs, so this is not caused by any single PR in flight. It passes on some runs, so it is intermittent rather than a hard break — but at roughly a 50% hit rate on failing builds it is frequent enough to red-fail the required aspnetcore-components-e2e check on unrelated PRs. Build Analysis currently reports it as an unmatched failure (Bash exited with code '1' on Run E2E tests), which is why this Known Build Error is being filed.

The chosen ErrorMessage also matches the sibling InitialIndex_TallContainer_NearEnd_FillsViewportWithoutUserScroll test, which shares the same scenario and assertion text and is expected to have the same root cause.

Related work in this area:

Given the hit rate and that it blocks unrelated PRs, quarantining the affected theory is likely warranted while the underlying issue is investigated.

Report

Build Repository Test Pull Request
1564034 dotnet/aspnetcore Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests.ServerVirtualizationTest.QuickGrid_InitialIndex_TallContainer_NearEnd_FillsViewportWithoutUserScroll(useProvider: False) #68627
1563927 dotnet/aspnetcore Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests.ServerVirtualizationTest.QuickGrid_InitialIndex_TallContainer_NearEnd_FillsViewportWithoutUserScroll(useProvider: True) #68733
1563923 dotnet/aspnetcore Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests.ServerVirtualizationTest.QuickGrid_InitialIndex_TallContainer_NearEnd_FillsViewportWithoutUserScroll(useProvider: False) #68731
1563739 dotnet/aspnetcore Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests.ServerVirtualizationTest.QuickGrid_InitialIndex_TallContainer_NearEnd_FillsViewportWithoutUserScroll(useProvider: False) #68720
1563420 dotnet/aspnetcore Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests.ServerVirtualizationTest.QuickGrid_InitialIndex_TallContainer_NearEnd_FillsViewportWithoutUserScroll(useProvider: True)
1563047 dotnet/aspnetcore Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests.ServerVirtualizationTest.QuickGrid_InitialIndex_TallContainer_NearEnd_FillsViewportWithoutUserScroll(useProvider: False) #68704

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
4 6 6

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions