Skip to content

Fix OnNavigatedTo not firing after PopModalAsync when tab is changed inside modal#35803

Merged
kubaflo merged 1 commit into
dotnet:inflight/currentfrom
praveenkumarkarunanithi:fix-35756-main
Jun 11, 2026
Merged

Fix OnNavigatedTo not firing after PopModalAsync when tab is changed inside modal#35803
kubaflo merged 1 commit into
dotnet:inflight/currentfrom
praveenkumarkarunanithi:fix-35756-main

Conversation

@praveenkumarkarunanithi

Copy link
Copy Markdown
Contributor

Note

Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue.
Thank you!

Root Cause

When a modal is closed through PopModalAsync, the framework cascades SendNavigatedTo(Pop) down to the current child of the TabbedPage (for example, Tab1). Inside SendNavigatedTo, a guard (if (HasNavigatedTo) return) prevents duplicate OnNavigatedTo events from firing. This guard was introduced in PR #31931 to fix issue #23902 .

The issue occurs when the user switches tabs while a modal is open. That tab switch triggers a normal Replace navigation within the TabbedPage, which sets Tab1.HasNavigatedTo = true. Later, when the modal is closed, SendNavigatedFrom is invoked only on the modal page itself — the tab child pages never receive SendNavigatedFrom, so their HasNavigatedTo flags are not reset.

As a result, when the subsequent Pop cascade reaches Tab1, its HasNavigatedTo flag is still true from the earlier in-modal tab switch. The duplicate-event guard therefore incorrectly suppresses the OnNavigatedTo event that should fire when returning to the page after the modal closes.

Description of Change

Updated Page.SendNavigatedTo so that when navigation cascades into a container child page, the child’s HasNavigatedTo flag is reset before cascading — but only for NavigationType.Pop.

Pop represents returning to an existing page and should always trigger a legitimate new OnNavigatedTo event. Push and Replace flows remain unchanged, preserving the original duplicate-event protection introduced for issue #23902.

Regression details

The regression was introduced by PR #31931

Issues Fixed

Fixes #35756

Tested the behaviour in the following platforms

  • Android
  • Windows
  • iOS
  • Mac

Screenshots

Before Issue Fix After Issue Fix
BeforeFix.mov
AfterFix.mov

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 35803

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 35803"

@dotnet-policy-service dotnet-policy-service Bot added the partner/syncfusion Issues / PR's with Syncfusion collaboration label Jun 8, 2026
@praveenkumarkarunanithi praveenkumarkarunanithi added platform/macos macOS / Mac Catalyst platform/windows platform/android platform/ios i/regression This issue described a confirmed regression on a currently supported version partner/syncfusion Issues / PR's with Syncfusion collaboration and removed partner/syncfusion Issues / PR's with Syncfusion collaboration labels Jun 8, 2026
@praveenkumarkarunanithi praveenkumarkarunanithi changed the title fix and test update Fix OnNavigatedTo not firing after PopModalAsync when tab is changed inside modal Jun 8, 2026
@praveenkumarkarunanithi praveenkumarkarunanithi marked this pull request as ready for review June 8, 2026 14:29
@kubaflo

kubaflo commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

/review -b feature/enhanced-reviewer

1 similar comment
@kubaflo

kubaflo commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

/review -b feature/enhanced-reviewer

@MauiBot MauiBot added the s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review) label Jun 8, 2026
MauiBot

This comment was marked as outdated.

@kubaflo

kubaflo commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

/review -b feature/enhanced-reviewer

@MauiBot MauiBot added the s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates label Jun 8, 2026
MauiBot

This comment was marked as outdated.

@kubaflo

kubaflo commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

/review rerun

@dotnet dotnet deleted a comment from github-actions Bot Jun 10, 2026
@kubaflo

kubaflo commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

/review rerun

@kubaflo

kubaflo commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

/review -b feature/enhanced-reviewer

@github-actions github-actions Bot added the s/agent-review-in-progress AI review is currently running for this PR label Jun 11, 2026

@MauiBot MauiBot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review Summary

@praveenkumarkarunanithi — new AI review results are available based on this last commit: 10cb3ca.
fix and test update To request a fresh review after new comments or commits, comment /review rerun.

Gate Passed Code Review In Review Confidence High Platform iOS

Review Sessions — click to expand
Gate — Test Before & After Fix

Gate Result: ✅ PASSED

Platform: IOS · Base: main · Merge base: dd5b6d2e

Test Without Fix (expect FAIL) With Fix (expect PASS)
🖥️ Issue35756 Issue35756 ✅ FAIL — 287s ✅ PASS — 114s
🔴 Without fix — 🖥️ Issue35756: FAIL ✅ · 287s
  Determining projects to restore...
  Restored /Users/cloudtest/vss/_work/1/s/src/Graphics/src/Graphics/Graphics.csproj (in 554 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/BindingSourceGen/Controls.BindingSourceGen.csproj (in 550 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Essentials/src/Essentials.csproj (in 5.81 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/Foldable/src/Controls.Foldable.csproj (in 7.93 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Core/maps/src/Maps.csproj (in 7.93 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj (in 7.94 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/BlazorWebView/src/Maui/Microsoft.AspNetCore.Components.WebView.Maui.csproj (in 7.95 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/Maps/src/Controls.Maps.csproj (in 7.94 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/Core/Controls.Core.csproj (in 7.95 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Core/src/Core.csproj (in 7.96 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/Xaml/Controls.Xaml.csproj (in 7.96 sec).
/Users/cloudtest/vss/_work/1/s/.dotnet/packs/Microsoft.iOS.Sdk.net10.0_26.0/26.0.11017/targets/Xamarin.Shared.Sdk.targets(309,3): warning : RuntimeIdentifier was set on the command line, and will override the value for RuntimeIdentifiers set in the project file. [/Users/cloudtest/vss/_work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-ios]
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Graphics -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Graphics/Debug/net10.0-ios26.0/Microsoft.Maui.Graphics.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Essentials -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Essentials/Debug/net10.0-ios26.0/Microsoft.Maui.Essentials.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Core/Debug/net10.0-ios26.0/Microsoft.Maui.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Maps -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Maps/Debug/net10.0-ios26.0/Microsoft.Maui.Maps.dll
  Controls.BindingSourceGen -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.BindingSourceGen/Debug/netstandard2.0/Microsoft.Maui.Controls.BindingSourceGen.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Controls.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Core/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Controls.Maps -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Maps/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.Maps.dll
  Microsoft.AspNetCore.Components.WebView.Maui -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Microsoft.AspNetCore.Components.WebView.Maui/Debug/net10.0-ios26.0/Microsoft.AspNetCore.Components.WebView.Maui.dll
  Controls.Xaml -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Xaml/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.Xaml.dll
  Controls.Foldable -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Foldable/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.Foldable.dll
  Detected signing identity:
    Code Signing Key: "" (-)
    Provisioning Profile: "" () - no entitlements
    Bundle Id: com.microsoft.maui.uitests
    App Id: com.microsoft.maui.uitests
  Controls.TestCases.HostApp -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-ios/iossimulator-arm64/Controls.TestCases.HostApp.dll
  Optimizing assemblies for size may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
  Optimizing assemblies for size. This process might take a while.

Build succeeded.

/Users/cloudtest/vss/_work/1/s/.dotnet/packs/Microsoft.iOS.Sdk.net10.0_26.0/26.0.11017/targets/Xamarin.Shared.Sdk.targets(309,3): warning : RuntimeIdentifier was set on the command line, and will override the value for RuntimeIdentifiers set in the project file. [/Users/cloudtest/vss/_work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-ios]
    1 Warning(s)
    0 Error(s)

Time Elapsed 00:02:33.62
  Determining projects to restore...
  Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/UITest.Core/UITest.Core.csproj (in 767 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/VisualTestUtils/VisualTestUtils.csproj (in 767 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/tests/CustomAttributes/Controls.CustomAttributes.csproj (in 5 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/BindingSourceGen/Controls.BindingSourceGen.csproj (in 828 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Graphics/src/Graphics/Graphics.csproj (in 1.25 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Essentials/src/Essentials.csproj (in 1.27 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/UITest.NUnit/UITest.NUnit.csproj (in 1.34 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Core/src/Core.csproj (in 1.35 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/Core/Controls.Core.csproj (in 1.37 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/UITest.Appium/UITest.Appium.csproj (in 2.03 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/UITest.Analyzers/UITest.Analyzers.csproj (in 2.43 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/VisualTestUtils.MagickNet/VisualTestUtils.MagickNet.csproj (in 2.41 sec).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/tests/TestCases.iOS.Tests/Controls.TestCases.iOS.Tests.csproj (in 3.24 sec).
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Controls.CustomAttributes -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.CustomAttributes/Debug/net10.0/Controls.CustomAttributes.dll
  Graphics -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Graphics/Debug/net10.0/Microsoft.Maui.Graphics.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Essentials -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Essentials/Debug/net10.0/Microsoft.Maui.Essentials.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Core/Debug/net10.0/Microsoft.Maui.dll
  Controls.BindingSourceGen -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.BindingSourceGen/Debug/netstandard2.0/Microsoft.Maui.Controls.BindingSourceGen.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Controls.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Core/Debug/net10.0/Microsoft.Maui.Controls.dll
  UITest.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Core/Debug/net10.0/UITest.Core.dll
  VisualTestUtils -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/VisualTestUtils/Debug/netstandard2.0/VisualTestUtils.dll
  UITest.NUnit -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.NUnit/Debug/net10.0/UITest.NUnit.dll
  UITest.Appium -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Appium/Debug/net10.0/UITest.Appium.dll
  VisualTestUtils.MagickNet -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/VisualTestUtils.MagickNet/Debug/netstandard2.0/VisualTestUtils.MagickNet.dll
  UITest.Analyzers -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Analyzers/Debug/netstandard2.0/UITest.Analyzers.dll
  Controls.TestCases.iOS.Tests -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
Test run for /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (arm64)

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 10.0.0)
[xUnit.net 00:00:00.06]   Discovering: Controls.TestCases.iOS.Tests
[xUnit.net 00:00:00.19]   Discovered:  Controls.TestCases.iOS.Tests
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
   NUnit3TestExecutor discovered 1 of 1 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 6/11/2026 6:54:06 AM FixtureSetup for Issue35756(iOS)
>>>>> 6/11/2026 6:54:11 AM OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal Start
>>>>> 6/11/2026 6:54:16 AM OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal Stop
>>>>> 6/11/2026 6:54:16 AM Log types: syslog, crashlog, performance, safariConsole, safariNetwork, server
  Failed OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal [5 s]
  Error Message:
     Assert.That(App.WaitForElement("Tab1NavigatedToCount").GetText(), Is.EqualTo("NavigatedTo count: 3"))
  String lengths are both 20. Strings differ at index 19.
  Expected: "NavigatedTo count: 3"
  But was:  "NavigatedTo count: 2"
  ------------------------------^

  Stack Trace:
     at Microsoft.Maui.TestCases.Tests.Issues.Issue35756.OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue35756.cs:line 30

1)    at Microsoft.Maui.TestCases.Tests.Issues.Issue35756.OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue35756.cs:line 30


NUnit Adapter 4.5.0.0: Test execution complete
Results File: /Users/cloudtest/vss/_work/1/s/CustomAgentLogsTmp/UITests/TestResults/Issue35756.trx

Total tests: 1
     Failed: 1
Test Run Failed.
 Total time: 1.3939 Minutes
>>> TRX_RESULT_FILE: /Users/cloudtest/vss/_work/1/s/CustomAgentLogsTmp/UITests/TestResults/Issue35756.trx

🟢 With fix — 🖥️ Issue35756: PASS ✅ · 114s
  Determining projects to restore...
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/BindingSourceGen/Controls.BindingSourceGen.csproj (in 447 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Graphics/src/Graphics/Graphics.csproj (in 466 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Essentials/src/Essentials.csproj (in 469 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/Core/Controls.Core.csproj (in 516 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Core/src/Core.csproj (in 532 ms).
  6 of 11 projects are up-to-date for restore.
/Users/cloudtest/vss/_work/1/s/.dotnet/packs/Microsoft.iOS.Sdk.net10.0_26.0/26.0.11017/targets/Xamarin.Shared.Sdk.targets(309,3): warning : RuntimeIdentifier was set on the command line, and will override the value for RuntimeIdentifiers set in the project file. [/Users/cloudtest/vss/_work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-ios]
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Graphics -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Graphics/Debug/net10.0-ios26.0/Microsoft.Maui.Graphics.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Essentials -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Essentials/Debug/net10.0-ios26.0/Microsoft.Maui.Essentials.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Core/Debug/net10.0-ios26.0/Microsoft.Maui.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Maps -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Maps/Debug/net10.0-ios26.0/Microsoft.Maui.Maps.dll
  Controls.BindingSourceGen -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.BindingSourceGen/Debug/netstandard2.0/Microsoft.Maui.Controls.BindingSourceGen.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Controls.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Core/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Controls.Xaml -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Xaml/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.Xaml.dll
  Microsoft.AspNetCore.Components.WebView.Maui -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Microsoft.AspNetCore.Components.WebView.Maui/Debug/net10.0-ios26.0/Microsoft.AspNetCore.Components.WebView.Maui.dll
  Controls.Foldable -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Foldable/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.Foldable.dll
  Controls.Maps -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Maps/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.Maps.dll
  Detected signing identity:
    Code Signing Key: "" (-)
    Provisioning Profile: "" () - no entitlements
    Bundle Id: com.microsoft.maui.uitests
    App Id: com.microsoft.maui.uitests
  Controls.TestCases.HostApp -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-ios/iossimulator-arm64/Controls.TestCases.HostApp.dll
  Optimizing assemblies for size may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
  Optimizing assemblies for size. This process might take a while.

Build succeeded.

/Users/cloudtest/vss/_work/1/s/.dotnet/packs/Microsoft.iOS.Sdk.net10.0_26.0/26.0.11017/targets/Xamarin.Shared.Sdk.targets(309,3): warning : RuntimeIdentifier was set on the command line, and will override the value for RuntimeIdentifiers set in the project file. [/Users/cloudtest/vss/_work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-ios]
    1 Warning(s)
    0 Error(s)

Time Elapsed 00:00:56.80
  Determining projects to restore...
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/BindingSourceGen/Controls.BindingSourceGen.csproj (in 541 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Essentials/src/Essentials.csproj (in 540 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Graphics/src/Graphics/Graphics.csproj (in 537 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Core/src/Core.csproj (in 517 ms).
  Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/Core/Controls.Core.csproj (in 585 ms).
  8 of 13 projects are up-to-date for restore.
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Controls.CustomAttributes -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.CustomAttributes/Debug/net10.0/Controls.CustomAttributes.dll
  Graphics -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Graphics/Debug/net10.0/Microsoft.Maui.Graphics.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Essentials -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Essentials/Debug/net10.0/Microsoft.Maui.Essentials.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Core/Debug/net10.0/Microsoft.Maui.dll
  Controls.BindingSourceGen -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.BindingSourceGen/Debug/netstandard2.0/Microsoft.Maui.Controls.BindingSourceGen.dll
  ##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
  Controls.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Core/Debug/net10.0/Microsoft.Maui.Controls.dll
  UITest.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Core/Debug/net10.0/UITest.Core.dll
  VisualTestUtils -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/VisualTestUtils/Debug/netstandard2.0/VisualTestUtils.dll
  UITest.Appium -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Appium/Debug/net10.0/UITest.Appium.dll
  VisualTestUtils.MagickNet -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/VisualTestUtils.MagickNet/Debug/netstandard2.0/VisualTestUtils.MagickNet.dll
  UITest.NUnit -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.NUnit/Debug/net10.0/UITest.NUnit.dll
  UITest.Analyzers -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Analyzers/Debug/netstandard2.0/UITest.Analyzers.dll
  Controls.TestCases.iOS.Tests -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
Test run for /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (arm64)

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 10.0.0)
[xUnit.net 00:00:00.05]   Discovering: Controls.TestCases.iOS.Tests
[xUnit.net 00:00:00.18]   Discovered:  Controls.TestCases.iOS.Tests
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
   NUnit3TestExecutor discovered 1 of 1 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 6/11/2026 6:56:02 AM FixtureSetup for Issue35756(iOS)
>>>>> 6/11/2026 6:56:06 AM OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal Start
>>>>> 6/11/2026 6:56:11 AM OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal Stop
  Passed OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal [4 s]
NUnit Adapter 4.5.0.0: Test execution complete
Results File: /Users/cloudtest/vss/_work/1/s/CustomAgentLogsTmp/UITests/TestResults/Issue35756.trx

Test Run Successful.
Total tests: 1
     Passed: 1
 Total time: 26.3805 Seconds
>>> TRX_RESULT_FILE: /Users/cloudtest/vss/_work/1/s/CustomAgentLogsTmp/UITests/TestResults/Issue35756.trx

📁 Fix files reverted (2 files)
  • eng/pipelines/ci-copilot.yml
  • src/Controls/src/Core/Page/Page.cs

UI Tests — Page,TabbedPage

Detected UI test categories: Page,TabbedPage

Deep UI tests — 43 passed, 28 failed across 2 categories on platform-pool agent (replaces in-process counts above).

🧪 UI Test Execution Results (deep, platform pool)

Category Tests Snapshot diffs
Page 9/26 (17 ❌) 17 diff PNGs
TabbedPage 34/50 (11 ❌) 14 diff PNGs
Page — 17 failed tests
NavigationBarBackgroundShouldChange
System.InvalidOperationException : 
Snapshot different than baseline: NavigationBarBackgroundShouldChangeLightTheme.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: NavigationBarBackgroundShouldChangeLightTheme.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the 
...
ContentPage_Padding_WithBackgroundColor
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_Padding_WithBackgroundColor() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 76
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
ContentPage_Title_WithBackgroundColorAndPadding
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_Title_WithBackgroundColorAndPadding() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 111
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
ContentPage_IsVisible_WithoutTitle
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_IsVisible_WithoutTitle() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 61
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
ThemeUnspecifiedDoesNotAffectModalPageSheet
System.InvalidOperationException : 
Snapshot different than baseline: ThemeUnspecifiedDoesNotAffectModalPageSheet.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: ThemeUnspecifiedDoesNotAffectModalPageSheet.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the base
...
ContentPage_zContent
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_zContent() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 30
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
ContentPage_Background_WithRTL
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_Background_WithRTL() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 126
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
ContentPageBackgroundImageSourceWorks
System.InvalidOperationException : 
Snapshot different than baseline: ContentPageBackgroundImageSourceWorks.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: ContentPageBackgroundImageSourceWorks.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.

...
ContentPage_Padding_WithRTL
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_Padding_WithRTL() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 141
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
ContentPage_HideSoftinput_WithPaddingAndBackground
System.InvalidOperationException : 
Snapshot different than baseline: ContentPage_HideSoftinput_WithPaddingAndBackground.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: ContentPage_HideSoftinput_WithPaddingAndBackground.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug), then u
...
ContentPage_IsVisible_WithTitle
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_IsVisible_WithTitle() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 45
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
ContentPage_HideSoftinput_WithRTLAndPadding
System.InvalidOperationException : 
Snapshot different than baseline: ContentPage_HideSoftinput_WithRTLAndPadding.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: ContentPage_HideSoftinput_WithRTLAndPadding.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug), then update the base
...
Issue23674Test
System.InvalidOperationException : 
Snapshot different than baseline: Issue23674Test.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: Issue23674Test.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build arti
...
TitleViewShouldBeVisible
System.InvalidOperationException : 
Snapshot different than baseline: TitleViewShouldBeVisible.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: TitleViewShouldBeVisible.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or dow
...
ContentPage_Title_WithBackgroundColor
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_Title_WithBackgroundColor() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 92
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
ContentPage_Title_WithPaddingAndHideSoftInput
System.InvalidOperationException : 
Snapshot different than baseline: ContentPage_Title_WithPaddingAndHideSoftInput.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: ContentPage_Title_WithPaddingAndHideSoftInput.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug), then update the 
...
ContentPage_Padding_WithTitle
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
   at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_Padding_WithTitle() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 157
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
TabbedPage — 11 failed tests
VerifyTabbedPageDoesNotHaveMultipleTabsSelected
System.InvalidOperationException : 
Snapshot different than baseline: VerifyTabbedPageDoesNotHaveMultipleTabsSelected.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: VerifyTabbedPageDoesNotHaveMultipleTabsSelected.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update 
...
TabbedPageFlowDirectionUpdatesOnRuntimeChange
System.InvalidOperationException : 
Snapshot different than baseline: TabbedPageFlowDirection_DefaultRightToLeftLayout.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: TabbedPageFlowDirection_DefaultRightToLeftLayout.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then updat
...
DynamicFontImageSourceColorShouldApplyOnTabIcon
System.InvalidOperationException : 
Snapshot different than baseline: DynamicFontImageSourceColorShouldApplyOnTabIcon.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: DynamicFontImageSourceColorShouldApplyOnTabIcon.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update 
...
NavigationBarLayoutWithMixedHasNavigationBar
System.InvalidOperationException : 
Snapshot different than baseline: NavigationBarLayoutWithMixedHasNavigationBar.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: NavigationBarLayoutWithMixedHasNavigationBar.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the ba
...
GradientInTabBarShouldChange
System.InvalidOperationException : 
Snapshot different than baseline: GradientInTabBarShouldChange.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: GradientInTabBarShouldChange.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachmen
...
Issue12324TabbedPageVisualTest
System.InvalidOperationException : 
Snapshot different than baseline: Issue12324TabbedPageVisualTest.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: Issue12324TabbedPageVisualTest.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attac
...
UpdatedSelectionIndicatorProperly
System.InvalidOperationException : 
Snapshot different than baseline: UpdatedSelectionIndicatorProperly.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: UpdatedSelectionIndicatorProperly.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test
...
Issue22899Test
System.InvalidOperationException : 
Snapshot different than baseline: Issue22899Test.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: Issue22899Test.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build arti
...
TabBarIconsShouldAutoscaleTabbedPage
System.InvalidOperationException : 
Snapshot different than baseline: TabBarIconsShouldAutoscaleTabbedPage.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: TabBarIconsShouldAutoscaleTabbedPage.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
Se
...
FontImageSourceColorShouldApplyOnTabIcon
System.InvalidOperationException : 
Snapshot different than baseline: FontImageSourceColorShouldApplyOnTabIcon.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: FontImageSourceColorShouldApplyOnTabIcon.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline i
...
TabbedPageBackButtonUpdated
System.InvalidOperationException : 
Snapshot different than baseline: TabbedPageBackButtonUpdated.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.

More info: https://aka.ms/visual-test-workflow


iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
  xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0

Then run the tests targeting the new simulator.
  ----> VisualTestUtils.VisualTestFailedException : 
Snapshot different than baseline: TabbedPageBackButtonUpdated.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment 
...

📎 Download drop-deep-uitests artifact (TRX + snapshot diffs)


Pre-Flight — Context & Validation

Issue: #35756 - Changing TabbedPage.CurrentPage from modal page no longer fires OnNavigatedTo on PopModalAsync
PR: #35803 - Fix OnNavigatedTo not firing after PopModalAsync when tab is changed inside modal
Platforms Affected: iOS, Android reported; PR labeled iOS/Android/Windows/macOS; iOS used for gate and candidate testing
Files Changed: 1 implementation, 2 test

Key Findings

  • Issue #35756 is a regression from 10.0.60 to 10.0.70: after changing TabbedPage.CurrentPage from inside a modal, PopModalAsync should fire OnNavigatedTo again for the returned-to tab, producing count 3 instead of count 2.
  • PR #35803 changes Page.SendNavigatedTo so a container's current child page can receive a Pop navigated-to event even if a prior tab switch inside a modal left the child's HasNavigatedTo flag set.
  • Gate already passed on iOS: the new Issue35756 UI test fails without the fix and passes with the fix.
  • PR discussion through authenticated gh could not be fetched, but public API metadata, local diff, and generated gate artifacts were available.

Code Review Summary

Verdict: LGTM
Confidence: high
Errors: 0 | Warnings: 0 | Suggestions: 2

Key code review findings:

  • Suggestion: src/Controls/src/Core/Page/Page.cs:856 comment about why PopToRoot is excluded is slightly imprecise, but behavior is correct.
  • Suggestion: src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue35756.cs could optionally add a no-tab-switch regression assertion to prove the original duplicate-navigation guard remains intact.

Fix Candidates

# Source Approach Test Result Files Changed Notes
PR PR #35803 Reset the container child page's HasNavigatedTo flag before cascading NavigationType.Pop from Page.SendNavigatedTo. PASS (Gate) src/Controls/src/Core/Page/Page.cs Original PR fix; UI test fails without it and passes with it.

Code Review — Deep Analysis

Code Review — PR #35803

Independent Assessment

What this changes: Page.SendNavigatedTo now explicitly resets a container child page's HasNavigatedTo flag to false before cascading a Pop navigation event into it. The cascade logic is otherwise identical to the pre-existing code.

Inferred motivation: The HasNavigatedTo guard that prevents duplicate OnNavigatedTo events can be spuriously set to true on a tab-child page before the modal closes, because a tab switch from inside a modal fires SendNavigatedTo(Replace) directly on the child — bypassing the SendNavigatedFrom call that would have cleared the flag. When the modal is later dismissed, the guard silently swallows the OnNavigatedTo for the returning page.


Reconciliation with PR Narrative

Author claims: The regression was introduced by PR #31931 (fix for #23902). That PR added the HasNavigatedTo guard to prevent duplicate OnNavigatedTo. The tab-switch-inside-modal scenario exposes a gap: SendNavigatedFrom is only called on the modal, not on the TabbedPage's children, so their HasNavigatedTo is never reset before the Pop cascade.

Agreement: The analysis precisely matches the code. The fix is narrowly scoped and does not weaken the original guard introduced for #23902.


Findings

💡 Suggestion — Comment about PopToRoot exclusion is slightly imprecise

Page.cs:856

// PopToRoot is excluded: SendNavigatedFrom already resets all flags before PopToRoot cascades.

This reasoning is partially inaccurate. For PopToRoot within a NavigationPage, SendNavigatedFrom is only called on the top-of-stack page (previousPage), not on the root TabbedPage's children directly. The reason PopToRoot doesn't need the reset is different: when you push away from a TabbedPage to start building a nav stack, SendNavigatedFrom(Push) cascades through the TabbedPage to its CurrentPage, resetting HasNavigatedTo at that point. By the time PopToRoot fires, the child flag is already false — not because PopToRoot's own SendNavigatedFrom resets it, but because the earlier Push already did. The comment could mislead future readers.

Not a correctness bug — the behavior is correct. Just a comment to revisit.

💡 Suggestion — Test missing a "no regression" assertion for the non-tab-switch flow

TestCases.Shared.Tests/Tests/Issues/Issue35756.cs

The test verifies the fix scenario (count=3 after pop). It doesn't assert that OnNavigatedTo doesn't over-fire in a normal pop (no tab switch). A count of 3 is the right number here, but a second test method could validate that popping a modal without switching tabs still yields count=2 (initial + pop), confirming the original HasNavigatedTo guard still holds. This is optional — UI test bloat is a real concern — but it would prevent a future regression that removes the guard entirely.


Devil's Advocate

"Is the Pop reset too broad?" — Considered: this also fires for NavigationPage.CurrentPage when a modal is popped over a NavigationPage. But NavigationPage.CurrentPage.HasNavigatedTo is false at that point (it was reset by SendNavigatedFrom(Push) when the modal was pushed), so the explicit reset is a no-op.

"Could the tab-switch Navigate Replace fire a count increment unexpectedly?" — The test expects count=3: initial(1), Replace from tab-switch-inside-modal(2), Pop from dismiss(3). This is intentional and correct — the Replace fires SendNavigatedTo directly on Tab1 from MultiPage.cs:107, which is the designed behavior for page switching. The fix ensures the Pop also fires, which is the bug being fixed.

"Is Shell affected?" — Shell implements IPageContainer<Page>, so the cascade applies to it too. When a modal is popped over Shell, the SendNavigatedFrom(Push) cascade at modal-push time already clears Shell.CurrentPage.HasNavigatedTo, making the new reset a no-op. No regression risk.

"Could count be 4 if something fires twice?" — The HasNavigatedTo guard on this (TabbedPage) prevents TabbedPage from re-firing. The child's guard is reset then immediately set again via containerChild.SendNavigatedTo, and that call respects the guard for any of the child's own children. No double-fire path.


Verdict: LGTM

Confidence: high

Summary: The fix is a minimal, correctly-scoped change that addresses the exact gap in the HasNavigatedTo guard. The HostApp reproducer and UI test accurately cover the bug scenario with the right expected value. The two suggestions above are optional polish items, not blockers.


Fix — Analysis & Comparison

Fix Candidates

# Source Approach Test Result Files Changed Notes
1 try-fix Let NavigationType.Pop bypass the HasNavigatedTo duplicate-event guard in Page.SendNavigatedTo. ✅ PASS 1 file Passed Issue35756, but broader than PR because it changes all Pop guard semantics and risks reintroducing duplicate Pop notifications fixed by #23902.
2 try-fix Clear selected child navigation state from MultiPage.CurrentPage when the container itself is inactive under a modal. ✅ PASS 2 files Passed Issue35756, but more invasive than PR because it adds an internal helper and changes MultiPage replacement semantics globally.
PR PR #35803 Reset only the cascaded container child before NavigationType.Pop in Page.SendNavigatedTo. ✅ PASSED (Gate) 1 file Narrowest passing fix; preserves Replace semantics and original duplicate guard behavior outside the stale child Pop cascade.

Cross-Pollination

Model Round New Ideas? Details
maui-expert-reviewer 2 No Considered a prevention approach that would skip MultiPage.CurrentPage Replace SendNavigatedTo while the container is inactive. Rejected as not worth testing because it changes observable Replace behavior for tabs while a modal is open and is therefore broader than the PR.

Exhausted: Yes
Selected Fix: PR's fix — It is the narrowest validated solution: it acts only where stale state causes harm, only for NavigationType.Pop, only for the current child cascade, and does not alter normal Replace or all-Pop event semantics.

Attempt Details

try-fix-1 — Pop bypasses guard

  • Approach: Change if (HasNavigatedTo) to if (HasNavigatedTo && args.NavigationType != NavigationType.Pop) in Page.SendNavigatedTo.
  • Diff: CustomAgentLogsTmp/PRState/35803/PRAgent/try-fix/attempt-1/fix.diff
  • Test result: ✅ PASS, BuildAndRunHostApp.ps1 -Platform ios -TestFilter "Issue35756"
  • Failure analysis: Not failed, but rejected because it weakens duplicate-event protection for every Pop path rather than only the stale child cascade.

try-fix-2 — Clear inactive MultiPage child state

  • Approach: Add Page.ClearHasNavigatedTo() and call it after MultiPage.CurrentPage sends Replace NavigatedTo when the MultiPage itself is not navigated-to.
  • Diff: CustomAgentLogsTmp/PRState/35803/PRAgent/try-fix/attempt-2/fix.diff
  • Test result: ✅ PASS, BuildAndRunHostApp.ps1 -Platform ios -TestFilter "Issue35756"
  • Failure analysis: Not failed, but rejected because it expands the changed surface to MultiPage plus an internal helper and changes inactive tab replacement state globally.

Report — Final Recommendation

Comparative Report — PR #35803

Candidate Ranking

Rank Candidate Regression result Assessment
1 pr ✅ Passed iOS gate Narrowest validated fix. It clears only the stale current-child HasNavigatedTo state immediately before a container cascades NavigationType.Pop, preserving the duplicate-event guard and normal tab replacement semantics elsewhere.
1 pr-plus-reviewer ✅ Same as pr Expert reviewer returned no actionable findings, so this candidate is behaviorally identical to pr; it ties with pr but does not improve on it.
3 try-fix-2 ✅ Passed targeted iOS test Fixes the stale state earlier by clearing selected child state after inactive MultiPage.CurrentPage replacement. This is broader than the PR because it adds a helper and changes inactive MultiPage replacement state globally.
4 try-fix-1 ✅ Passed targeted iOS test Allows every NavigationType.Pop to bypass the duplicate HasNavigatedTo guard. This is the broadest passing approach and risks reintroducing duplicate Pop notifications that the guard was intended to prevent.

No candidate failed regression tests, so ranking is based on correctness risk and scope.

Candidate Details

pr

The submitted PR resets the current child page's HasNavigatedTo flag only when a container is cascading a NavigationType.Pop. This directly addresses the stale flag created when a tab is selected while a modal is open, allowing the pop-return notification to reach the selected tab. It leaves Replace, Push, and ordinary duplicate OnNavigatedTo suppression unchanged.

pr-plus-reviewer

The MAUI expert reviewer found no actionable inline findings, and the raw findings artifact is an empty array. Because no feedback needed to be applied, this candidate is the same implementation as pr.

try-fix-2

This candidate clears selected child navigation state from MultiPage.CurrentPage when the MultiPage itself is inactive. It passed the targeted iOS regression, but it changes a broader lifecycle point and introduces new internal API surface solely to manage the state transition.

try-fix-1

This candidate bypasses the HasNavigatedTo duplicate guard for all Pop navigation. It passed the targeted iOS regression, but it changes the meaning of Pop delivery globally rather than only repairing the stale child cascade that causes this issue.

Winner

pr is the winning candidate. pr-plus-reviewer is equivalent because the expert reviewer had no changes to apply, but the canonical submitted PR candidate is preferred for the manifest because it is the unchanged PR fix. It has the best risk profile among all passing candidates: targeted, minimal, and backed by the gate result showing the regression fails without the fix and passes with it.


Future Action — review latest findings

No alternative fix was selected for this run. Review the session findings and CI results before merging.

@MauiBot MauiBot removed the s/agent-review-in-progress AI review is currently running for this PR label Jun 11, 2026
PureWeen pushed a commit that referenced this pull request Jun 11, 2026
Hoists regression-fix PRs that are in flight (open against main or as
backports targeting the SR) into a prominent section right under the
Blocking summary — these were previously buried in Tier 2 of the
detailed regression breakdown.

Captures two classifications:
  - open-on-main:        fix PR is OPEN against main awaiting merge
                         (next action: watch for merge → open backport)
  - backport-in-progress: fix PR already merged, open backport targets SR
                         (next action: land the backport before ship)

The section is omitted entirely when no regression has an open fix PR
in flight, so green SR reports stay terse.

Example: SR8 (#35876) now surfaces #35822 (Android RenderThread crash
fix) and #35803 (TabbedPage navigation regression fix) at the top of
the issue instead of buried at line 100+ in the tier-2 detail.

10 new unit tests cover header rendering, link extraction, base-ref
display, status emoji, title truncation, ordering relative to Blocking
and Ship-readiness sections, and the empty-case omission.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@kubaflo

kubaflo commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 3 pipeline(s).

@kubaflo

kubaflo commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

/review tests

@github-actions

Copy link
Copy Markdown
Contributor

Tests Failure Analysis

@praveenkumarkarunanithi — test-failure review results are available based on commit 10cb3ca.
To request a fresh review after new comments, commits, or CI runs, comment /review tests.

Overall Likely unrelated Failures 5 Platform android | macOS

Test Failure Review: Likely unrelated - click to expand

Overall verdict: Likely unrelated

All observed failures are in CarouselView, CollectionView, and visual snapshot tests — none of which are touched by this PR. The device-test pipeline has also been failing on main for at least five consecutive builds before this PR was evaluated.

Failure Verdict Evidence
maui-pr-devicetests — Android Helix (Mono) + Windows Helix Likely unrelated main branch failed this pipeline in all 5 recent builds (builds 1459940, 1455022, 1454817, 1451776, 1448204; spanning 06/03–06/11). Pre-existing baseline failure unrelated to this PR. Helix aggregate data returned 404 so individual work-item details could not be verified.
maui-pr-uitests — Android CollectionView (API 30) Likely unrelated Failures in VerifyHeaderTemplate*, VerifyHeaderView*, CollectionViewInfiniteScroll, VerifyDefaultScrollToRequested — all System.TimeoutException on element lookup. PR only modifies Page.cs TabbedPage navigation logic; no CollectionView code changed.
maui-pr-uitests — Android CarouselView CoreClr (API 30) Likely unrelated Ten VerifyCarouselView* tests time out waiting for elements. CarouselViewGoToPreviousCurrentItem fails with an ADB infrastructure error (broken pipe, exit code 224). PR does not touch CarouselView.
maui-pr-uitests — macOS UITests Controls Image/IndicatorView/IsEnabled/IsVisible Likely unrelated Issue16918Test fails with VisualTestFailedException. PR does not add or modify any visual snapshots. Platform mismatch (macOS-only visual test; PR is a TabbedPage navigation fix).
Build Analysis Likely unrelated Aggregated failure derived from the unrelated check failures above.

Recommended action

No action needed for these failures: device tests are a pre-existing baseline failure on main, and UI test failures are in unrelated areas (CarouselView, CollectionView, visual snapshots). The PR change in Page.cs and the Issue35756 test files are in the TabbedPage navigation area and are not implicated by any observed failure.

Evidence details

PR scope: 3 files changed — src/Controls/src/Core/Page/Page.cs, src/Controls/tests/TestCases.HostApp/Issues/Issue35756.cs, src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue35756.cs. Area: area-controls-tabbedpage.

Device tests baseline: maui-pr-devicetests builds on main that all resulted in failure: 1459940 (06/11), 1455022 (06/08), 1454817 (06/08), 1451776 (06/08), 1448204 (06/03). Helix work-item detail for PR build 1459867 returned HTTP 404.

CarouselView ADB error (infrastructure): OpenQA.Selenium.UnknownErrorException: Error executing adbExec ... 'Command ... adb -P 5037 -s emulator-5554 shell cmd package resolve-activity' exited with code 224; Command output: cmd: Failure calling service package: Broken pipe (32).

Visual test failure: VisualTestUtils.VisualTestFailedException on Issue16918Test (macOS); no snapshot files changed in this PR.

Limitation: No AzDO token was available; authenticated _apis/test APIs were skipped. Build metadata, timelines, and public logs were queried. maui-pr-uitests build 1459866 was still inProgress when context was gathered; additional jobs may complete with further results.

PureWeen added a commit that referenced this pull request Jun 11, 2026
The classifier picked the newest cross-referenced PR from the issue
timeline without first checking whether the SR already had a fix from a
different PR. This caused issues that were fixed by SR-direct PRs (e.g.
#35768 against release/10.0.1xx-sr7) to be reported as 'open-on-main'
needing backport, when in fact the forward-flow main companion PR (e.g.
#35803) just happened to also close the issue.

Real example from SR8 dogfood:
  issue #35756 → fixed by #35768 (merged to SR7, inherited by SR8)
                 misclassified as 'open-on-main' because #35803 (the
                 forward-flow main PR) is OPEN
  Should be:    'in-sr-active' — no action needed

Fix: before the candidate-PR walk, check srContents.fixedIssues (the
deterministic closing-keyword ground truth from SR commits). If the
issue appears there, classify based on the SR commit's PR number, with
revert-awareness.

+ 8 new assertions covering the SR-direct-fix path, the reverted-on-SR
edge case, and backward compat with partial SrContents shape.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@kubaflo kubaflo changed the base branch from main to inflight/current June 11, 2026 19:50
@kubaflo kubaflo merged commit 87416e7 into dotnet:inflight/current Jun 11, 2026
151 of 167 checks passed
@github-actions github-actions Bot added this to the .NET 10 SR9 milestone Jun 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-controls-tabbedpage TabbedPage i/regression This issue described a confirmed regression on a currently supported version partner/syncfusion Issues / PR's with Syncfusion collaboration platform/android platform/ios platform/macos macOS / Mac Catalyst platform/windows s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Changing TabbedPage.CurrentPage from modal page no longer fires OnNavigatedTo on PopModalAsync

4 participants