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
Summary
| 24-Hour Hit Count |
7-Day Hit Count |
1-Month Count |
| 4 |
6 |
6 |
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.E2ETestsPull 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_FillsViewportWithoutUserScrollfails intermittently on the Blazor E2E legs. The failure is not confined to one render mode or one leg:useProvider: trueanduseProvider: false) fail.Tests.VirtualizationTest) and the Interactive Server variant (ServerExecutionTests.ServerVirtualizationTest) fail.The test mounts
QuickGridScrollComponent, sizes the scroll container to 2000px, switches to variable item heights, unloads the list, setsInitialItemIndex = 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-1withscrollTop=0, i.e. the list never repopulated after the reload rather than landing at the wrong offset.Assertion:
Stack trace:
Origin: the test was added on 2026-08-21 by fde48e9 — "Fix
InitialItemIndexviewport 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-e2ebuilds (all 2026-08-21). 6 of 12 matched this signature, across 5 distinct branches/PRs:Tests.VirtualizationTest, bothuseProviderServerVirtualizationTest,useProvider: Falserefs/heads/mainServerVirtualizationTest,useProvider: TrueTests.VirtualizationTestServerVirtualizationTest, bothuseProviderPassing 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-trackedQuickGrid_ScrollToItem_NegativeIndex_ScrollsToTopfrom #68559).It reproduces on
mainand 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 requiredaspnetcore-components-e2echeck on unrelated PRs. Build Analysis currently reports it as an unmatched failure (Bash exited with code '1'onRun E2E tests), which is why this Known Build Error is being filed.The chosen
ErrorMessagealso matches the siblingInitialIndex_TallContainer_NearEnd_FillsViewportWithoutUserScrolltest, which shares the same scenario and assertion text and is expected to have the same root cause.Related work in this area:
VirtualizationTest.ScrollToItem_AfterEndJump_LandsAtTargetVirtualizationTest.QuickGrid_ScrollToItem_NegativeIndex_ScrollsToTopGiven the hit rate and that it blocks unrelated PRs, quarantining the affected theory is likely warranted while the underlying issue is investigated.
Report
Summary