Skip to content

Test failure "microsoft.com sub-string not found" in Components.E2ETests.ServerRenderingTests.RedirectionTest.RedirectStreamingEnhancedGetToExternal #61175

@carlossanlop

Description

@carlossanlop

Build Information

Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=994906
Build error leg or test failing: Test: Blazor E2E tests on Linux

Error Message

{
  "ErrorMessage" : [
      "Microsoft.AspNetCore.Components.E2ETests.ServerRenderingTests.RedirectionTest.RedirectStreamingEnhancedGetToExternal [FAIL]",
      "Assert.Contains() Failure: Sub-string not found",
  ]
  "BuildRetry" : true,
  "ExcludeConsoleLog" : false
}
2025-03-26T19:50:41.1760409Z [xUnit.net 00:24:39.51]     Microsoft.AspNetCore.Components.E2ETests.ServerRenderingTests.RedirectionTest.RedirectStreamingEnhancedGetToExternal [FAIL]
2025-03-26T19:50:41.1830958Z   Failed Microsoft.AspNetCore.Components.E2ETests.ServerRenderingTests.RedirectionTest.RedirectStreamingEnhancedGetToExternal [31 s]
2025-03-26T19:50:41.1843261Z   Error Message:
2025-03-26T19:50:41.1843745Z    OpenQA.Selenium.BrowserAssertFailedException : Xunit.Sdk.ContainsException: Assert.Contains() Failure: Sub-string not found
2025-03-26T19:50:41.1854817Z String:    "http://127.0.0.1:42617/subdir/redirect/st"···
2025-03-26T19:50:41.1855320Z Not found: "microsoft.com"
2025-03-26T19:50:41.1855818Z    at Microsoft.AspNetCore.E2ETesting.WaitAssert.<>c__DisplayClass9_0.<Contains>b__0() in /home/vsts/work/1/s/src/Shared/E2ETesting/WaitAssert.cs:line 45
2025-03-26T19:50:41.1857372Z    at Microsoft.AspNetCore.E2ETesting.WaitAssert.<>c__DisplayClass19_0`1.<WaitAssertCore>b__0(IWebDriver _) in /home/vsts/work/1/s/src/Shared/E2ETesting/WaitAssert.cs:line 104
2025-03-26T19:50:41.1857915Z Screen shot captured at '/home/vsts/work/1/s/src/Components/test/E2ETest/bin/screenshots/54a4ea46b663460e85eee2948088c0ac.png'
2025-03-26T19:50:41.1858280Z Encountered browser errors
2025-03-26T19:50:41.1858936Z [2025-03-26T19:50:30Z] [Warning] http://127.0.0.1:42617/subdir/_framework/blazor.web.y4xxciwd1w.js 0:39610 "[2025-03-26T19:50:30.610Z] Warning: Initializer 'http://127.0.0.1:42617/subdir/BasicTestApp.vpc4xa0l6h.lib.module.js' will be ignored because multiple runtimes are available. Use 'before(Web|WebAssembly|Server)Start' and 'after(Web|WebAssembly|Server)Started' instead."
2025-03-26T19:50:41.1860190Z [2025-03-26T19:50:30Z] [Warning] http://127.0.0.1:42617/subdir/_framework/blazor.web.y4xxciwd1w.js 0:39610 "[2025-03-26T19:50:30.611Z] Warning: Initializer 'http://127.0.0.1:42617/subdir/JSInitializers/Classic/BasicTestApp.j2kfp6tx1s.lib.module.js' will be ignored because multiple runtimes are available. Use 'before(Web|WebAssembly|Server)Start' and 'after(Web|WebAssembly|Server)Started' instead."Page content:
2025-03-26T19:50:41.1860714Z <head><meta charset="utf-8">
2025-03-26T19:50:41.1860948Z     <base href="/subdir/">
2025-03-26T19:50:41.1861162Z     </head>
2025-03-26T19:50:41.1861384Z <body><nav><a href="nav">Home</a> |
2025-03-26T19:50:41.1861614Z     <a href="streaming">Streaming</a> |
2025-03-26T19:50:41.1861859Z     <a href="large-streaming">Large Streaming</a> |
2025-03-26T19:50:41.1862122Z     <a href="streaming-interactivity">Streaming with interactivity</a> |
2025-03-26T19:50:41.1862405Z     <a href="nav/give-404-with-content">Error page with 404 content</a> |
2025-03-26T19:50:41.1862678Z     <a href="nav/nonexistent-page">Error page with no content</a> |
2025-03-26T19:50:41.1862941Z     <a href="nav/non-html-response">Non-HTML page</a> |
2025-03-26T19:50:41.1863200Z     <a href="nav/non-blazor-html-response">Non-Blazor HTML page</a> |
2025-03-26T19:50:41.1863474Z     <a href="nav/scroll-to-hash#some-content">Scroll to hash</a> |
2025-03-26T19:50:41.1863739Z     <a href="nav/throw-while-streaming">Error while streaming</a> |
2025-03-26T19:50:41.1864035Z     <a href="nav/interactive-component-navigation/server">Interactive component navigation (server)</a> |
2025-03-26T19:50:41.1864364Z     <a href="nav/interactive-component-navigation/webassembly">Interactive component navigation (webassembly)</a> |
2025-03-26T19:50:41.1865251Z     <a href="nav/list-headers">List headers</a> |
2025-03-26T19:50:41.1865918Z     <a href="nav/preserve-content">Preserve content</a>
2025-03-26T19:50:41.1866326Z     <span data-enhance-nav="false"><a href="nav/other"><span id="not-enhanced-nav-link">Other (no enhanced nav)</span></a> |
2025-03-26T19:50:41.1866616Z         <span data-enhance-nav=""><a href="nav/other">Other (re-enabled enhanced nav)</a> |
2025-03-26T19:50:41.1866804Z         </span></span>
2025-03-26T19:50:41.1867005Z     <a href="nav/location-changed/server">LocationChanged/LocationChanging event (server)</a>
2025-03-26T19:50:41.1867236Z     <a href="nav/location-changed/wasm">LocationChanged/LocationChanging event (wasm)</a>
2025-03-26T19:50:41.1867477Z     <a href="nav/location-changed/server-and-wasm">LocationChanged/LocationChanging event (server-and-wasm)</a>
2025-03-26T19:50:41.1867712Z     <a href="nav/null-parameter/server">Null component parameter (server)</a>
2025-03-26T19:50:41.1867923Z     <a href="nav/null-parameter/wasm">Null component parameter (wasm)</a>
2025-03-26T19:50:41.1868089Z     <br>
2025-03-26T19:50:41.1868380Z     <a href="nav/other" data-enhance-nav="false"><svg width="100" height="100" id="svg-in-anchor-not-enhanced-nav-link"><rect width="50" height="50" style="fill:rgb(0,0,255);"></rect></svg></a>
2025-03-26T19:50:41.1868905Z     <svg width="100px" height="30px" id="svg-nav-link"><a href="nav/other"><text x="15" y="15" font-size="15">Other SVG</text></a></svg>
2025-03-26T19:50:41.1869100Z     <br>
2025-03-26T19:50:41.1869339Z     <svg width="200px" height="30px" id="svg-not-enhanced-nav-link" data-enhance-nav="false"><a href="nav/other"><text x="15" y="15" font-size="15">Other SVG (no enhanced nav)</text></a></svg>
2025-03-26T19:50:41.1869573Z     <br></nav>
2025-03-26T19:50:41.1869715Z <hr>
2025-03-26T19:50:41.1869882Z <!--bl:34--><h1>Streaming GET</h1><!--/bl:34-->
2025-03-26T19:50:41.1870097Z             <blazor-focus-on-navigate selector="[data-focus-on-navigate]"></blazor-focus-on-navigate>
2025-03-26T19:50:41.1870284Z     <script>
2025-03-26T19:50:41.1870455Z         // This script must come before blazor.web.js to test that
2025-03-26T19:50:41.1870869Z         // the framework does the right thing when an element is already focused.
2025-03-26T19:50:41.1871197Z         const elementToFocus = document.querySelector('[data-focus-on-load]');
2025-03-26T19:50:41.1871384Z         if (elementToFocus) {
2025-03-26T19:50:41.1871541Z             elementToFocus.focus();
2025-03-26T19:50:41.1871680Z         }
2025-03-26T19:50:41.1871811Z     </script>
2025-03-26T19:50:41.1872005Z     <script src="_framework/blazor.web.y4xxciwd1w.js" autostart="false" suppress-error="BL9992"></script>
2025-03-26T19:50:41.1872231Z     <script src="_content/TestContentPackage/counterInterop.js"></script>
2025-03-26T19:50:41.1872428Z     <script src="js/circuitContextTest.js"></script>
2025-03-26T19:50:41.1872590Z     <script>
2025-03-26T19:50:41.1872754Z         // This is called by the Components.WasmMinimal project.
2025-03-26T19:50:41.1872930Z         function getQueryParam(key) {
2025-03-26T19:50:41.1873108Z             return new URLSearchParams(location.search).get(key);
2025-03-26T19:50:41.1873271Z         }
2025-03-26T19:50:41.1873321Z 
2025-03-26T19:50:41.1873471Z         function callBlazorStart() {
2025-03-26T19:50:41.1873640Z             function appendHiddenParagraph(id) {
2025-03-26T19:50:41.1873821Z                 const paragraph = document.createElement('p');
2025-03-26T19:50:41.1873992Z                 paragraph.id = id;
2025-03-26T19:50:41.1874161Z                 paragraph.style = 'display: none;';
2025-03-26T19:50:41.1874334Z                 document.body.appendChild(paragraph);
2025-03-26T19:50:41.1874482Z             }
2025-03-26T19:50:41.1874538Z 
2025-03-26T19:50:41.1874731Z             const enableClassicInitializers = sessionStorage.getItem('enable-classic-initializers') === 'true';
2025-03-26T19:50:41.1874988Z             const suppressEnhancedNavigation = sessionStorage.getItem('suppress-enhanced-navigation') === 'true';
2025-03-26T19:50:41.1875238Z             const blockLoadBootResource = sessionStorage.getItem('block-load-boot-resource') === 'true';
2025-03-26T19:50:41.1875491Z             const blockWebassemblySettings = sessionStorage.getItem('block-webassembly-settings') === 'true';
2025-03-26T19:50:41.1875719Z             sessionStorage.removeItem('suppress-enhanced-navigation');
2025-03-26T19:50:41.1875915Z             sessionStorage.removeItem('block-load-boot-resource');
2025-03-26T19:50:41.1876112Z             sessionStorage.removeItem('enable-classic-initializers');
2025-03-26T19:50:41.1876307Z             sessionStorage.removeItem('block-webassembly-settings');
2025-03-26T19:50:41.1876388Z 
2025-03-26T19:50:41.1876539Z             let loadBootResourceUnblocked = null;
2025-03-26T19:50:41.1876706Z             if (blockLoadBootResource) {
2025-03-26T19:50:41.1876880Z                 loadBootResourceUnblocked = new Promise(resolve => {
2025-03-26T19:50:41.1877063Z                     window.unblockLoadBootResource = () => {
2025-03-26T19:50:41.1877238Z                         var origSetItem = localStorage.setItem;
2025-03-26T19:50:41.1877417Z                         localStorage.setItem = function (key) {
2025-03-26T19:50:41.1877644Z                             origSetItem.apply(this, arguments);
2025-03-26T19:50:41.1877838Z                             if (key.startsWith('blazor-resource-hash:')) {
2025-03-26T19:50:41.1878037Z                                 localStorage.setItem = origSetItem;
2025-03-26T19:50:41.1878231Z                                 appendHiddenParagraph('unblocked-wasm');
2025-03-26T19:50:41.1878388Z                             }
2025-03-26T19:50:41.1878519Z                         };
2025-03-26T19:50:41.1878657Z                         resolve();
2025-03-26T19:50:41.1878794Z                     }
2025-03-26T19:50:41.1878926Z                 });
2025-03-26T19:50:41.1879057Z             }
2025-03-26T19:50:41.1879106Z 
2025-03-26T19:50:41.1879257Z             let maxParallelResourceDownloadCount = 0;
2025-03-26T19:50:41.1879443Z             let currentParallelResourceDownloadCount = 0;
2025-03-26T19:50:41.1879673Z             let webAssemblySettings = {
2025-03-26T19:50:41.1879861Z                 loadBootResource: function (type, name, defaultUri, integrity) {
2025-03-26T19:50:41.1880034Z                     switch (type) {
2025-03-26T19:50:41.1880185Z                         case 'manifest':
2025-03-26T19:50:41.1880373Z                         case 'dotnetjs':
2025-03-26T19:50:41.1880523Z                         case 'dotnetwasm':
2025-03-26T19:50:41.1880699Z                             // note this is resolved to absolute URL using document.baseURI
2025-03-26T19:50:41.1880888Z                             return `WasmMinimal/_framework/${name}`;
2025-03-26T19:50:41.1881042Z                         default:
2025-03-26T19:50:41.1881229Z                             // The following allows us to arbitrarily delay the loading of WebAssembly resources.
2025-03-26T19:50:41.1881450Z                             // This is useful for guaranteeing that auto mode components will fall back on
2025-03-26T19:50:41.1881638Z                             // using Blazor server.
2025-03-26T19:50:41.1881807Z                             currentParallelResourceDownloadCount++;
2025-03-26T19:50:41.1882009Z                             return fetch(`${document.baseURI}WasmMinimal/_framework/${name}?`, {
2025-03-26T19:50:41.1882191Z                                 method: "GET",
2025-03-26T19:50:41.1882345Z                             }).then(async (response) => {
2025-03-26T19:50:41.1882541Z                                 if (currentParallelResourceDownloadCount > maxParallelResourceDownloadCount) {
2025-03-26T19:50:41.1882767Z                                     maxParallelResourceDownloadCount = currentParallelResourceDownloadCount;
2025-03-26T19:50:41.1883009Z                                     window['__aspnetcore__testing__max__parallel__resource__download__count'] = maxParallelResourceDownloadCount;
2025-03-26T19:50:41.1883212Z                                 }
2025-03-26T19:50:41.1883367Z                                 currentParallelResourceDownloadCount--;
2025-03-26T19:50:41.1883548Z                                 await loadBootResourceUnblocked;
2025-03-26T19:50:41.1883707Z                                 return response;
2025-03-26T19:50:41.1883848Z                             });
2025-03-26T19:50:41.1883981Z                     }
2025-03-26T19:50:41.1884111Z                 },
2025-03-26T19:50:41.1884240Z             };
2025-03-26T19:50:41.1884395Z             if (blockWebassemblySettings)
2025-03-26T19:50:41.1884564Z                 webAssemblySettings = null;
2025-03-26T19:50:41.1884631Z 
2025-03-26T19:50:41.1884769Z             Blazor.start({
2025-03-26T19:50:41.1884912Z                 ssr: {
2025-03-26T19:50:41.1885078Z                     disableDomPreservation: suppressEnhancedNavigation,
2025-03-26T19:50:41.1885171Z 
2025-03-26T19:50:41.1885330Z                     // We use a short timeout so tests don't take too long
2025-03-26T19:50:41.1885509Z                     circuitInactivityTimeoutMs: 100,
2025-03-26T19:50:41.1885661Z                 },
2025-03-26T19:50:41.1885875Z                 enableClassicInitializers: enableClassicInitializers,
2025-03-26T19:50:41.1886059Z                 webAssembly: webAssemblySettings,
2025-03-26T19:50:41.1886218Z                 circuit: {
2025-03-26T19:50:41.1886371Z                     reconnectionOptions: {
2025-03-26T19:50:41.1886553Z                         // It's easier to test the reconnection logic if we wait a bit
2025-03-26T19:50:41.1886737Z                         // before attempting to reconnect
2025-03-26T19:50:41.1886911Z                         retryIntervalMilliseconds: 5000,
2025-03-26T19:50:41.1887061Z                     },
2025-03-26T19:50:41.1887190Z                 },
2025-03-26T19:50:41.1887352Z             }).then(() => appendHiddenParagraph('blazor-started'));
2025-03-26T19:50:41.1887507Z         }
2025-03-26T19:50:41.1887557Z 
2025-03-26T19:50:41.1887718Z         if (location.search.indexOf('suppress-autostart') < 0) {
2025-03-26T19:50:41.1887892Z             callBlazorStart();
2025-03-26T19:50:41.1888103Z         } else {
2025-03-26T19:50:41.1888269Z             const startButton = document.createElement('button');
2025-03-26T19:50:41.1888453Z             startButton.id = 'call-blazor-start';
2025-03-26T19:50:41.1888635Z             startButton.textContent = 'Call Blazor.start()';
2025-03-26T19:50:41.1888815Z             startButton.onclick = callBlazorStart;
2025-03-26T19:50:41.1888993Z             document.body.appendChild(startButton);
2025-03-26T19:50:41.1889139Z         }
2025-03-26T19:50:41.1891390Z     </script><!--Blazor-Server-Component-

Known Issue Error Message

Fill the error message using step by step known issues guidance.

{
  "ErrorMessage": "",
  "ErrorPattern": "",
  "BuildRetry": false,
  "ExcludeConsoleLog": false
}

Report

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
0 0 0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Known Build ErrorIssue that should show up in Build Analysisneeds-area-labelUsed by the dotnet-issue-labeler to label those issues which couldn't be triaged automatically

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions