Skip to content

[iOS/MacCatalyst] Fix ActivityIndicator frozen static frame when IsRunning is set to false - #36263

Merged
kubaflo merged 1 commit into
dotnet:inflight/currentfrom
SyedAbdulAzeemSF4852:fix-36173
Jul 6, 2026
Merged

[iOS/MacCatalyst] Fix ActivityIndicator frozen static frame when IsRunning is set to false#36263
kubaflo merged 1 commit into
dotnet:inflight/currentfrom
SyedAbdulAzeemSF4852:fix-36173

Conversation

@SyedAbdulAzeemSF4852

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!

Issue Details

  • Setting the ActivityIndicator's IsRunning property to true and then setting it back to false causes the ActivityIndicator to freeze and to remain visible.

Root Cause

Description of Change

  • Replace activityIndicatorView.Hidden = activityIndicator.Visibility != Visibility.Visible with activityIndicatorView.Hidden = true in the else-else branch of UpdateIsRunning, ensuring the native UIActivityIndicatorView is always hidden when not both running and visible, preventing the frozen static frame regression on iOS/MacCatalyst.

Issues Fixed

Fixes #36173

Validated the behaviour in the following platforms

  • Windows
  • Android
  • iOS
  • Mac

Output

Before After
Before.mov
After.mov

@github-actions

github-actions Bot commented Jul 1, 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 -- 36263

Or

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

@dotnet-policy-service dotnet-policy-service Bot added the community ✨ Community Contribution label Jul 1, 2026
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Hey there @@SyedAbdulAzeemSF4852! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed.

@dotnet-policy-service dotnet-policy-service Bot added the partner/syncfusion Issues / PR's with Syncfusion collaboration label Jul 1, 2026
@vishnumenon2684 vishnumenon2684 changed the title [WIP][iOS/MacCatalyst] Fix ActivityIndicator frozen static frame when IsRunning is set to false [iOS/MacCatalyst] Fix ActivityIndicator frozen static frame when IsRunning is set to false Jul 1, 2026
@sheiksyedm
sheiksyedm marked this pull request as ready for review July 3, 2026 10:30
Copilot AI review requested due to automatic review settings July 3, 2026 10:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Fixes an iOS/MacCatalyst regression where ActivityIndicator could stop animating but remain visible as a “frozen” static frame after IsRunning is set to false, by ensuring the native UIActivityIndicatorView is hidden whenever it isn’t both running and visible.

Changes:

  • Update iOS UpdateIsRunning logic to always hide the native view when not (IsRunning && Visibility.Visible) to prevent the frozen-frame state.
  • Add an iOS handler device test validating that transitioning IsRunning from true to false hides the native view even when Visibility is Visible.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
src/Core/src/Platform/iOS/ActivityIndicatorExtensions.cs Ensures UIActivityIndicatorView.Hidden is set to true when not running, preventing the visible-but-not-animating frozen frame.
src/Core/tests/DeviceTests/Handlers/ActivityIndicator/ActivityIndicatorHandlerTests.iOS.cs Adds a regression test asserting the native view becomes hidden after setting IsRunning = false while visible.

@kubaflo

This comment has been minimized.

@github-actions github-actions Bot added the s/agent-review-in-progress AI review is currently running for this PR label Jul 5, 2026
@MauiBot MauiBot added s/agent-gate-passed AI verified tests catch the bug (fail without fix, pass with fix) 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) labels Jul 5, 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

@SyedAbdulAzeemSF4852 — new AI review results are available based on this last commit: d38cc0d. To request a fresh review after new comments or commits, comment /review rerun.

Gate Passed Confidence Low Platform iOS


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

Gate Result: ✅ PASSED

Platform: IOS · Base: main · Merge base: 89a4e02d

Test Without Fix (expect FAIL) With Fix (expect PASS)
📱 ActivityIndicatorHandlerTests (SettingIsRunningFalseWhileVisibleShouldHideNativeView) Category=ActivityIndicator ✅ FAIL — 363s ✅ PASS — 224s
🔴 Without fix — 📱 ActivityIndicatorHandlerTests (SettingIsRunningFalseWhileVisibleShouldHideNativeView): FAIL ✅ · 363s

(truncated to last 15,000 chars)

8168810] 2026-07-05 13:33:58.816686-0700 Microsoft.Maui.Core.DeviceTests[6569:42853]    Exception stack traces:    at Microsoft.Maui.DeviceTests.ActivityIndicatorHandlerTests.SettingIsRunningFalseWhileVisibleShouldHideNativeView()
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8169050] --- End of stack trace from previous location ---
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8170730] 2026-07-05 13:33:58.816826-0700 Microsoft.Maui.Core.DeviceTests[6569:42853]    Execution time: 0.0053392
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8172140] 2026-07-05 13:33:58.817059-0700 Microsoft.Maui.Core.DeviceTests[6569:42853]    Test trait name: Category
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8176180] 2026-07-05 13:33:58.817213-0700 Microsoft.Maui.Core.DeviceTests[6569:42853]       value: ActivityIndicator
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8176370] 2026-07-05 13:33:58.817353-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[FAIL] Setting IsRunning False While Visible Should Hide Native View
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8176430] 2026-07-05 13:33:58.817453-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[FAIL] Setting IsRunning False While Visible Should Hide Native View   Test name: Setting IsRunning False While Visible Should Hide Native View
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8176800]    Assembly:  [Microsoft.Maui.Core.DeviceTests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8177440] 2026-07-05 13:33:58.817576-0700 Microsoft.Maui.Core.DeviceTests[6569:42853]    Exception messages: ActivityIndicator should be hidden when IsRunning is false.   Exception stack traces:    at Microsoft.Maui.DeviceTests.ActivityIndicatorHandlerTests.SettingIsRunningFalseWhileVisibleShouldHideNativeView()
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8179690] 2026-07-05 13:33:58.817734-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] --- End of stack trace from previous location ---
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8179930]    Execution time: 0.0053392
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8179980]    Test trait name: Category
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8180030]       value: ActivityIndicator
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8206410] 2026-07-05 13:33:58.820246-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Semantic Hint is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8218820] 2026-07-05 13:33:58.821619-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] HandlersHaveAllExpectedContructors
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8288900] 2026-07-05 13:33:58.828240-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] FlowDirection is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8299240] 2026-07-05 13:33:58.829551-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] FlowDirection is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8407760] 2026-07-05 13:33:58.840441-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] ContainerView Remains If Shadow Mapper Runs Again
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8496820] 2026-07-05 13:33:58.849335-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] PlatformView Transforms are not empty
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8512300] 2026-07-05 13:33:58.850939-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] PlatformView Transforms are not empty
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:58.8522400] 2026-07-05 13:33:58.851941-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] PlatformView Transforms are not empty
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.0854700] 2026-07-05 13:33:59.084950-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Setting Semantic Description makes element accessible
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.0913390] 2026-07-05 13:33:59.090874-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] DisconnectHandlerDoesntCrash
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1010880] 2026-07-05 13:33:59.100767-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1021460] 2026-07-05 13:33:59.101934-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1030780] 2026-07-05 13:33:59.102806-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1038390] 2026-07-05 13:33:59.103662-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1044710] 2026-07-05 13:33:59.104291-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1208080] 2026-07-05 13:33:59.120384-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1233130] 2026-07-05 13:33:59.123069-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1253660] 2026-07-05 13:33:59.125124-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1274720] 2026-07-05 13:33:59.127267-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Scale initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1324650] 2026-07-05 13:33:59.132180-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] IsRunning Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1346450] 2026-07-05 13:33:59.134387-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] IsRunning Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1366940] 2026-07-05 13:33:59.136525-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Clip Initializes ContainerView Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1495100] 2026-07-05 13:33:59.149175-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] InputTransparencyInitializesCorrectly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1541810] 2026-07-05 13:33:59.151807-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] InputTransparencyInitializesCorrectly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1542170] 2026-07-05 13:33:59.152218-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[IGNORED] View Renders To Image
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1594830] 2026-07-05 13:33:59.159219-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1608370] 2026-07-05 13:33:59.160397-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1706060] 2026-07-05 13:33:59.170121-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1753980] 2026-07-05 13:33:59.172574-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1754250] 2026-07-05 13:33:59.173760-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1765110] 2026-07-05 13:33:59.175738-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1768010] 2026-07-05 13:33:59.176567-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1773690] 2026-07-05 13:33:59.177202-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1781010] 2026-07-05 13:33:59.177798-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1789440] 2026-07-05 13:33:59.178698-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1812230] 2026-07-05 13:33:59.180956-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Rotation initializes correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1911290] 2026-07-05 13:33:59.190803-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Transformation Calculated Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1963890] 2026-07-05 13:33:59.196138-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Opacity is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1972300] 2026-07-05 13:33:59.196989-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Opacity is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.1999030] 2026-07-05 13:33:59.199699-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Opacity is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.2006690] 2026-07-05 13:33:59.200492-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Opacity is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.2013450] 2026-07-05 13:33:59.201114-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Opacity is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.2147950] 2026-07-05 13:33:59.214571-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] IsRunning Should Respect Visibility At Init
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.2157610] 2026-07-05 13:33:59.215473-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] IsRunning Should Respect Visibility At Init
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.2163440] 2026-07-05 13:33:59.216155-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] IsRunning Should Respect Visibility At Init
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.2180200] 2026-07-05 13:33:59.217783-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] IsRunning Should Respect Visibility At Init
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.4560590] 2026-07-05 13:33:59.455694-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Setting Semantic Hint makes element accessible
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.4639520] 2026-07-05 13:33:59.463577-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Visibility is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.4741010] 2026-07-05 13:33:59.464841-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Visibility is set correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.4843170] 2026-07-05 13:33:59.477885-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Transformation Initialize Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.4843530] 2026-07-05 13:33:59.480469-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Native View Bounds are not empty
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.4843620] 2026-07-05 13:33:59.481481-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Native View Bounds are not empty
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.4843660] 2026-07-05 13:33:59.483469-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] 	[PASS] Native View Bounds are not empty
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.4944580] 2026-07-05 13:33:59.485425-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] Microsoft.Maui.DeviceTests.ActivityIndicatorHandlerTests 1.2487105 ms
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.5010530] 2026-07-05 13:33:59.500698-0700 Microsoft.Maui.Core.DeviceTests[6569:43969] Failed tests:
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.5012760] 2026-07-05 13:33:59.501034-0700 Microsoft.Maui.Core.DeviceTests[6569:43969] 1) 	[FAIL] Setting IsRunning False While Visible Should Hide Native View   Test name: Setting IsRunning False While Visible Should Hide Native View
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.5014030]    Assembly:  [Microsoft.Maui.Core.DeviceTests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.5015080] 2026-07-05 13:33:59.501194-0700 Microsoft.Maui.Core.DeviceTests[6569:43969]    Exception messages: ActivityIndicator should be hidden when IsRunning is false.   Exception stack traces:    at Microsoft.Maui.DeviceTests.ActivityIndicatorHandlerTests.SettingIsRunningFalseWhileVisibleShouldHideNativeView()
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.5015710] 2026-07-05 13:33:59.501431-0700 Microsoft.Maui.Core.DeviceTests[6569:43969] --- End of stack trace from previous location ---
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.5015940]    Execution time: 0.0053392
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.5016040]    Test trait name: Category
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.5016410]       value: ActivityIndicator
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.5030390] 2026-07-05 13:33:59.502539-0700 Microsoft.Maui.Core.DeviceTests[6569:43969] Tests run: 67 Passed: 65 Inconclusive: 0 Failed: 1 Ignored: 1
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.5244180] 2026-07-05 13:33:59.524118-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] Xml file was written to the provided writer.
�[40m�[37mdbug�[39m�[22m�[49m: [13:33:59.5246510] 2026-07-05 13:33:59.524306-0700 Microsoft.Maui.Core.DeviceTests[6569:42853] Tests run: 1152 Passed: 65 Inconclusive: 0 Failed: 1 Ignored: 1086
�[40m�[37mdbug�[39m�[22m�[49m: ==================== End of ApplicationLog ====================
�[40m�[37mdbug�[39m�[22m�[49m: 
�[40m�[32minfo�[39m�[22m�[49m: Uninstalling the application 'com.microsoft.maui.core.devicetests' from 'iPhone 11 Pro'
�[40m�[37mdbug�[39m�[22m�[49m: 
�[40m�[37mdbug�[39m�[22m�[49m: Running /Applications/Xcode_26.0.1.app/Contents/Developer/usr/bin/simctl
�[40m�[37mdbug�[39m�[22m�[49m: Process simctl exited with 0
�[40m�[32minfo�[39m�[22m�[49m: Application 'com.microsoft.maui.core.devicetests' was uninstalled successfully
�[40m�[32minfo�[39m�[22m�[49m: <<XHARNESS_RESULT_START>>
      {
        "version": 1,
        "machineName": "XPDX4P6V3H-1",
        "exitCode": 1,
        "exitCodeName": "TESTS_FAILED",
        "platform": "apple",
        "device": "iPhone 11 Pro",
        "deviceOsVersion": "26.0",
        "files": [
          {
            "name": "test-ios-simulator-64_26.0-28243AAB-8DF4-4DCF-99A1-E23E7A8EA192.log",
            "type": "executionlog"
          },
          {
            "name": "list-ios-simulator-64_26.0-20260705_133323.log",
            "type": "devicelist"
          },
          {
            "name": "test-ios-simulator-64_26.0-20260705_133330.log",
            "type": "testlog"
          },
          {
            "name": "iPhone 11 Pro.log",
            "type": "systemlog"
          },
          {
            "name": "Microsoft.Maui.Core.DeviceTests.log",
            "type": "systemlog"
          },
          {
            "name": "com.microsoft.maui.core.devicetests.log",
            "type": "applicationlog"
          },
          {
            "name": "xunit-test-ios-simulator-64_26.0-20260705_133330.xml",
            "type": "xmllog"
          }
        ]
      }
      <<XHARNESS_RESULT_END>>
XHarness exit code: 1 (TESTS_FAILED)
  Passed: 0
  Failed: 0
  Tests completed with exit code: 1

🟢 With fix — 📱 ActivityIndicatorHandlerTests (SettingIsRunningFalseWhileVisibleShouldHideNativeView): PASS ✅ · 224s

(truncated to last 15,000 chars)

pplication/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : monoeg_g_log
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1008400] 	0x107dfe848 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_aot_module
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1008470] 	0x107ed8618 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_load_from
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1008530] 	0x107ed8134 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_open
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1008580] 	0x107ed9454 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_open
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1016800] 	0x107a45ddc - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libxamarin-dotnet.dylib : xamarin_assembly_preload_hook
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1016920] 	0x107eda470 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : invoke_assembly_preload_hook
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1016990] 	0x107ed73f8 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_byname
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1018670] 	0x107e080b0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_image
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1018790] 	0x107dfe7e0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_aot_module
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1018860] 	0x107ed8618 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_load_from
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1018920] 	0x107ed8134 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_open
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1019130] 	0x107ed9454 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_open
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1019180] 	0x107a45ddc - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libxamarin-dotnet.dylib : xamarin_assembly_preload_hook
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1019230] 	0x107eda470 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : invoke_assembly_preload_hook
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1019300] 	0x107ed73f8 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_byname
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1019470] 	0x107e080b0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_image
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1019540] 	0x107dfe7e0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_aot_module
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1019580] 	0x107ed8618 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_load_from
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1019650] 	0x107ed8134 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_open
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1019780] 	0x107ed9454 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_open
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1019830] 	0x107a45ddc - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libxamarin-dotnet.dylib : xamarin_assembly_preload_hook
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1019880] 	0x107eda470 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : invoke_assembly_preload_hook
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1019950] 	0x107ed73f8 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_byname
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1020090] 	0x107e080b0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_image
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1020160] 	0x107dfe7e0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_aot_module
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1020210] 	0x107e02fac - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_aot_get_method
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1020260] 	0x107d87f3c - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_jit_compile_method_with_opt
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1020320] 	0x107d85cac - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_jit_runtime_invoke
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1021490] 	0x107f46910 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_runtime_invoke_checked
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1021730] 	0x107ef9818 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : create_exception_two_strings
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1022030] 	0x107ef959c - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_exception_from_name_two_strings_checked
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1022150] 	0x107ed396c - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_runtime_init_checked
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1022310] 	0x107d8563c - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mini_init
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1022380] 	0x107ddcd1c - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_jit_init
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1023050] 	0x107a45014 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libxamarin-dotnet.dylib : xamarin_bridge_initialize
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1023170] 	0x107a461e8 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/libxamarin-dotnet.dylib : xamarin_main
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1786840] 	0x10293c370 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/28243AAB-8DF4-4DCF-99A1-E23E7A8EA192/data/Containers/Bundle/Application/9B3A1A7B-2F05-4151-AD62-F259541C2988/Microsoft.Maui.Core.DeviceTests.app/Microsoft.Maui.Core.DeviceTests : main
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1787150] 	0x1075e93d0 - Unknown
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1787230] 	0x1076fbda4 - Unknown
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1787290]
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1787350] =================================================================
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1787410] 	Basic Fault Address Reporting
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1787460] =================================================================
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1787600] Memory around native instruction pointer (0x10794888c):0x10794887c  c0 03 5f d6 c0 03 5f d6 10 29 80 d2 01 10 00 d4  .._..._..)......
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1787690] 0x10794888c  e3 00 00 54 fd 7b bf a9 fd 03 00 91 16 e3 ff 97  ...T.{..........
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1789340] 0x10794889c  bf 03 00 91 fd 7b c1 a8 c0 03 5f d6 c0 03 5f d6  .....{...._..._.
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1789850] 0x1079488ac  70 0a 80 d2 01 10 00 d4 e3 00 00 54 fd 7b bf a9  p..........T.{..
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1789940]
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1789990] =================================================================
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1790050] 	Managed Stacktrace:
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1790090] =================================================================
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1790130] 	  at <unknown> <0xffffffff>
�[40m�[37mdbug�[39m�[22m�[49m: [13:37:15.1790180] =================================================================
�[40m�[37mdbug�[39m�[22m�[49m: ==================== End of ApplicationLog ====================
�[40m�[37mdbug�[39m�[22m�[49m: 
�[40m�[32minfo�[39m�[22m�[49m: Uninstalling the application 'com.microsoft.maui.core.devicetests' from 'iPhone 11 Pro'
�[40m�[37mdbug�[39m�[22m�[49m: 
�[40m�[37mdbug�[39m�[22m�[49m: Running /Applications/Xcode_26.0.1.app/Contents/Developer/usr/bin/simctl
�[40m�[37mdbug�[39m�[22m�[49m: Process simctl exited with 0
�[40m�[32minfo�[39m�[22m�[49m: Application 'com.microsoft.maui.core.devicetests' was uninstalled successfully
�[40m�[32minfo�[39m�[22m�[49m: <<XHARNESS_RESULT_START>>
      {
        "version": 1,
        "machineName": "XPDX4P6V3H-1",
        "exitCode": 0,
        "exitCodeName": "SUCCESS",
        "platform": "apple",
        "device": "iPhone 11 Pro",
        "deviceOsVersion": "26.0",
        "files": [
          {
            "name": "test-ios-simulator-64_26.0-28243AAB-8DF4-4DCF-99A1-E23E7A8EA192.log",
            "type": "executionlog"
          },
          {
            "name": "list-ios-simulator-64_26.0-20260705_133706.log",
            "type": "devicelist"
          },
          {
            "name": "iPhone 11 Pro.log",
            "type": "systemlog"
          },
          {
            "name": "Microsoft.Maui.Core.DeviceTests.log",
            "type": "systemlog"
          },
          {
            "name": "com.microsoft.maui.core.devicetests.log",
            "type": "applicationlog"
          }
        ]
      }
      <<XHARNESS_RESULT_END>>
XHarness exit code: 0
  Passed: 0
  Failed: 0
  Tests completed successfully

📁 Fix files reverted (1 files)
  • src/Core/src/Platform/iOS/ActivityIndicatorExtensions.cs

📱 UI Tests — ViewBaseTests

Detected UI test categories: ViewBaseTests

Deep UI tests — 13 passed, 99 failed across 1 category on platform-pool agent (replaces in-process counts above).

🧪 UI Test Execution Results (deep, platform pool)

Category Tests Snapshot diffs
ViewBaseTests 13/112 (99 ❌) 198 diff PNGs
ViewBaseTests — 99 failed tests
VisualTransform_RotationWithRotationX
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_RotationWithRotationX.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: VisualTransform_RotationWithRotationX.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.

...
VisualTransform_AnchorY_ScaleXWithRotationX
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_AnchorY_ScaleXWithRotationX.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: VisualTransform_AnchorY_ScaleXWithRotationX.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
...
DarkTheme_VerifyVisualState
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.AppThemeFeatureTests.DarkTheme_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/AppThemeFeatureTests.cs:line 40
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
ContentView_ClipWithRectangleGeometry
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.ClipFeatureTests.ContentView_ClipWithRectangleGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 533
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Refl
...
SecondCustomPageWithBackgroundColorChanged
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.ContentViewFeatureTests.SecondCustomPageWithBackgroundColorChanged() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentViewFeatureTests.cs:line 304
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args
...
VisualTransform_RotationXWithRotationY
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_RotationXWithRotationY.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: VisualTransform_RotationXWithRotationY.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
...
Image_ClipWithGeometryGroup
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.ClipFeatureTests.Image_ClipWithGeometryGroup() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 335
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.Run
...
ContentView_ClipWithNestedClippedContent
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.ClipFeatureTests.ContentView_ClipWithNestedClippedContent() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 971
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.R
...
DefaultContentWithShadow
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.ContentViewFeatureTests.DefaultContentWithShadow() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentViewFeatureTests.cs:line 146
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Ref
...
Button_ClipWithImageSource
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.ClipFeatureTests.Button_ClipWithImageSource() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 223
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.Runt
...
Border_ClipWithStrokeThickness
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.ClipFeatureTests.Border_ClipWithStrokeThickness() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 52
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.R
...
ImageButton_ClipWithRectangleGeometry
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.ClipFeatureTests.ImageButton_ClipWithRectangleGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 609
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Refl
...
VisualTransform_Rotation
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_Rotation.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: VisualTransform_Rotation.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
...
VisualTransform_RotationWithScale
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_RotationWithScale.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: VisualTransform_RotationWithScale.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
...
ImageButton_ClipWithRoundRectangleGeometry
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.ClipFeatureTests.ImageButton_ClipWithRoundRectangleGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 641
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System
...
DefaultContentWithWidthRequest
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.ContentViewFeatureTests.DefaultContentWithWidthRequest() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentViewFeatureTests.cs:line 132
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at Syst
...
DarkTheme_SearchBarAndPlaceholderColor_VerifyVisualState
System.InvalidOperationException : 
Snapshot different than baseline: DarkTheme_SearchBarAndPlaceholderColor_VerifyVisualState.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: DarkTheme_SearchBarAndPlaceholderColor_VerifyVisualState.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a 
...
LightTheme_VerifyVisualState
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.AppThemeFeatureTests.LightTheme_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/AppThemeFeatureTests.cs:line 31
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
Image_ClipWithComplexPolyLineGeometry
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.ClipFeatureTests.Image_ClipWithComplexPolyLineGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 1026
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Ref
...
Image_ClipNull_NoCrash
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.ClipFeatureTests.Image_ClipNull_NoCrash() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 725
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.RuntimeM
...
DefaultContentWithHeightRequest
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.ContentViewFeatureTests.DefaultContentWithHeightRequest() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentViewFeatureTests.cs:line 119
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at Sys
...
LightTheme_EditorAndPlaceholderColor_VerifyVisualState
System.InvalidOperationException : 
Snapshot different than baseline: LightTheme_EditorAndPlaceholderColor_VerifyVisualState.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: LightTheme_EditorAndPlaceholderColor_VerifyVisualState.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug)
...
VisualTransform_Scale
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_Scale.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: VisualTransform_Scale.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 
...
Border_ClipNull_NoCrash
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.ClipFeatureTests.Border_ClipNull_NoCrash() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 695
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.Runtime
...
VisualTransform_AnchorXWithAnchorY
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_AnchorXWithAnchorY.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: VisualTransform_AnchorXWithAnchorY.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 te
...
BoxView_ClipWithCornerRadius
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.ClipFeatureTests.BoxView_ClipWithCornerRadius() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 176
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.Ru
...
Image_ClipWithEllipseGeometry
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.ClipFeatureTests.Image_ClipWithEllipseGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 303
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.R
...
VerifyBackgroundColorSet
System.InvalidOperationException : 
Snapshot different than baseline: VerifyBackgroundColorSet.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: VerifyBackgroundColorSet.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
...
VisualTransform_RotationXWithScaleX
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_RotationXWithScaleX.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: VisualTransform_RotationXWithScaleX.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 
...
VisualTransform_AnchorX_ScaleYWithRotation
System.InvalidOperationException : 
Snapshot different than baseline: VisualTransform_AnchorX_ScaleYWithRotation.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: VisualTransform_AnchorX_ScaleYWithRotation.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 baseli
...

(+69 more — see TRX in artifact)

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


📋 Pre-Flight — Context & Validation

Issue: #36173 - [iOS] ActivityIndicator freezes and remains visible after setting IsRunning to false - regression in Microsoft.Maui.Controls > 10.0.51
PR: #36263 - [iOS/MacCatalyst] Fix ActivityIndicator frozen static frame when IsRunning is set to false
Platforms Affected: iOS, MacCatalyst
Files Changed: 1 implementation, 1 test

Key Findings

  • Issue #36173 is a verified iOS regression introduced after 10.0.51: toggling ActivityIndicator.IsRunning from true to false leaves a frozen static spinner visible.
  • PR #36263 changes src/Core/src/Platform/iOS/ActivityIndicatorExtensions.cs so stopped/non-collapsed indicators are hidden instead of restoring Hidden=false when Visibility=Visible.
  • PR #36263 adds an iOS Core device test in ActivityIndicatorHandlerTests.iOS.cs for IsRunning=false while Visibility=Visible.
  • Gate result was provided by the caller and was not re-run: Gate PASSED - tests fail without fix and pass with PR fix.
  • Local gh is unauthenticated, so PR required-check status could not be queried via gh pr checks --required.

Code Review Summary

Verdict: NEEDS_DISCUSSION
Confidence: low
Errors: 0 | Warnings: 0 | Suggestions: 0

Key code review findings:

  • No code correctness findings were found. Confidence is low only because required CI status could not be verified in this environment.
  • Blast radius is localized to iOS/MacCatalyst ActivityIndicator IsRunning/Visibility mapping; no startup path or static/shared state changes.

Fix Candidates

# Source Approach Test Result Files Changed Notes
PR PR #36263 In ActivityIndicatorExtensions.UpdateIsRunning, hide the native view whenever the indicator is not both running and visible, while preserving collapsed layout behavior. PASSED (Gate provided) ActivityIndicatorExtensions.cs, ActivityIndicatorHandlerTests.iOS.cs Original PR fix; gate was completed before this run.

🔬 Code Review — Deep Analysis

Code Review - PR #36263

Independent Assessment

What this changes: iOS/MacCatalyst ActivityIndicator now hides the native UIActivityIndicatorView whenever it is not both IsRunning and Visibility.Visible.
Inferred motivation: Prevent a stopped spinner from remaining visible as a frozen static frame.

Reconciliation with PR Narrative

Author claims: Fixes iOS/MacCatalyst frozen ActivityIndicator after IsRunning=false, caused by overwriting StopAnimating()'s hidden state.
Agreement/disagreement: Agrees. The code path matches the described root cause and preserves collapsed-vs-hidden layout behavior.

Prior Review Reconciliation

No prior Error findings found.

Blast Radius Assessment

  • Runs for all instances: Yes, but only iOS/MacCatalyst ActivityIndicator IsRunning/Visibility mappings.
  • Startup impact: No.
  • Static/shared state: No.

CI Status

  • Required-check result: Undetermined - gh pr checks --required unavailable due missing GitHub CLI authentication.
  • Classification: Undetermined.
  • Action taken: Supplemental REST context and local review branch were used; confidence capped low.

Findings

No Errors, Warnings, or Suggestions found.

Failure-Mode Probing

  • IsRunning=false, Visibility.Visible: native view stops and is hidden; PR test covers this.
  • Visibility.Collapsed: still applies collapse constraint and hides.
  • Visibility.Hidden: inflates and hides, preserving layout space.
  • Handler reconnect/layout redraw: MauiActivityIndicator still gates animation on running-and-visible.

Verdict: NEEDS_DISCUSSION

Confidence: low
Summary: Code review found no correctness issues; the implementation is localized and sound. Required CI status could not be verified with authenticated gh, so this cannot be LGTM under the skill rules.


🛠️ Fix — Analysis & Comparison

Fix Candidates

# Source Approach Test Result Files Changed Notes
1 try-fix UIKit HidesWhenStopped owns stopped hidden state; MAUI avoids overriding it for Visible && !IsRunning. BLOCKED 2 files Built, but iOS run produced no xUnit results (Passed: 0, Failed: 0) and a crash report.
2 try-fix Move full ActivityIndicator state reconciliation into MauiActivityIndicator and call it from the handler. BLOCKED 2 files Initial compile issue fixed; build then succeeded, but iOS results collection was blocked. Broader lifecycle blast radius.
3 try-fix Handler-level effective visibility: call baseline UpdateIsRunning, then UpdateVisibility() using combined running/visibility state. BLOCKED 1 file Build succeeded, but iOS results collection was blocked. Duplicates visibility/layout application.
4 try-fix Effective opacity masking: set native Alpha=0 when not running and visible, with an opacity mapper override. BLOCKED / NOT BETTER 3 files Build produced PublicAPI analyzer warnings and still lacked test results; masks symptom and increases API/risk surface.
PR PR #36263 Directly hide the native view in ActivityIndicatorExtensions.UpdateIsRunning whenever not both running and visible, preserving collapsed layout handling. PASSED (Gate) 2 files Original PR. Gate was already completed by the caller and was not re-run.

Cross-Pollination

Model Round New Ideas? Details
maui-expert-reviewer 1 Yes Candidate 1: restore UIKit HidesWhenStopped ownership.
maui-expert-reviewer 2 Yes Candidate 2: move state reconciliation into MauiActivityIndicator.
maui-expert-reviewer 3 Yes Candidate 3: handler-level effective visibility via UpdateVisibility().
maui-expert-reviewer 4 Yes Candidate 4: effective opacity masking. This was tested and rejected as not better.

Exhausted: Yes
Selected Fix: PR #36263 - The original PR is the only fix with a provided passing gate result. No alternative was demonstrably better: candidates 1-3 could not obtain valid local iOS test results, and candidate 4 introduced PublicAPI warnings plus higher behavioral risk.

Environment/Test Blocker

All local iOS candidate test runs used:

pwsh .github/skills/run-device-tests/scripts/Run-DeviceTests.ps1 -Project Core -Platform ios -TestFilter "Category=ActivityIndicator"

Each candidate either built successfully or was fixed to build, but xharness failed to copy test-results.xml from the simulator, reported Passed: 0 and Failed: 0, and attached a crash report. Per the try-fix rules, those runs are not valid passes.


🏁 Report — Final Recommendation

Comparative Fix Report - PR #36263

Summary

Winner: pr

The raw PR fix is the only candidate with a supplied passing regression gate: the new ActivityIndicator device test fails without the fix and passes with the fix. The expert reviewer found no actionable issues, so pr-plus-reviewer is identical to pr; the try-fix alternatives were either blocked from producing valid iOS regression results or introduced broader risk.

Candidate Ranking

Rank Candidate Regression Result Assessment
1 pr PASSED Direct, localized fix in ActivityIndicatorExtensions.UpdateIsRunning; preserves collapsed layout behavior and has a passing gate.
2 pr-plus-reviewer PASSED by equivalence Expert review produced no actionable findings, so this candidate is identical to pr and adds no improvement over the raw PR.
3 try-fix-1 BLOCKED Delegates stopped-hidden behavior to UIKit HidesWhenStopped; build succeeded but no valid xUnit result was produced, and the approach depends on UIKit side effects.
4 try-fix-3 BLOCKED Applies effective visibility at the handler mapper layer after UpdateIsRunning; build succeeded but no valid xUnit result was produced, and it duplicates visibility/layout reconciliation.
5 try-fix-2 BLOCKED Moves full state reconciliation into MauiActivityIndicator; compile issue was corrected and build succeeded, but no valid xUnit result was produced, and the lifecycle blast radius is broader.
6 try-fix-4 BLOCKED / NOT BETTER Uses opacity masking; produced PublicAPI analyzer warnings and has higher behavioral risk because alpha-zero is not equivalent to native hidden semantics.

Comparative Analysis

pr changes the exact failing branch: after StopAnimating(), non-collapsed states now inflate layout space and set Hidden = true instead of deriving hidden state from MAUI Visibility. This directly fixes the frozen visible static frame while keeping Collapsed separate so layout constraints still collapse native size.

pr-plus-reviewer was evaluated as a sandbox candidate, but the expert review returned zero inline findings and no recommended edits. Since it is identical to the PR, it cannot outrank the raw PR on simplicity or evidence.

The try-fix candidates explored plausible alternatives, but none produced a valid passing regression result. Per the ranking rule, candidates without a passing regression signal must rank below candidates that passed. Among them, try-fix-1 is the closest conceptually but relies on HidesWhenStopped; try-fix-3 and try-fix-2 broaden the reconciliation surface; try-fix-4 is least suitable because it masks output with opacity and introduced analyzer/API-surface concerns.

Recommendation

Keep the PR implementation as submitted. It is the smallest proven fix, has the strongest empirical evidence, and the expert review found no actionable changes to apply.


🧭 Next Steps — 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 Jul 5, 2026
@kubaflo
kubaflo changed the base branch from main to inflight/current July 6, 2026 10:16
@kubaflo
kubaflo merged commit b75020d into dotnet:inflight/current Jul 6, 2026
35 of 36 checks passed
@github-actions github-actions Bot added this to the .NET 10 SR9 milestone Jul 6, 2026
kubaflo pushed a commit that referenced this pull request Jul 6, 2026
…nning is set to false (#36263)

<!-- Please let the below note in for people that find this PR -->
> [!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](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
- Setting the ActivityIndicator's IsRunning property to true and then
setting it back to false causes the ActivityIndicator to freeze and to
remain visible.

### Root Cause
- PR #28983 added Hidden = activityIndicator.Visibility !=
Visibility.Visible which runs after StopAnimating(). HidesWhenStopped
correctly set Hidden=True, but this line immediately overwrote it with
Hidden=False (since Visibility=Visible), leaving the native view visible
with no animation — the frozen static frame.

### Description of Change
- Replace activityIndicatorView.Hidden = activityIndicator.Visibility !=
Visibility.Visible with activityIndicatorView.Hidden = true in the
else-else branch of UpdateIsRunning, ensuring the native
UIActivityIndicatorView is always hidden when not both running and
visible, preventing the frozen static frame regression on
iOS/MacCatalyst.

### Issues Fixed
Fixes #36173

### Validated the behaviour in the following platforms

- [ ] Windows
- [ ] Android
- [x] iOS
- [x] Mac

### Output
| Before | After |
|----------|----------|
| <video
src="https://github.com/user-attachments/assets/53e12f75-f395-41a2-b2c2-7fb906143e8c">
| <video
src="https://github.com/user-attachments/assets/9e85be45-4ec6-412f-9b5a-92a896bd8f8d">
|
@kubaflo kubaflo mentioned this pull request Jul 6, 2026
PureWeen pushed a commit that referenced this pull request Jul 7, 2026
…nning is set to false (#36263)

<!-- Please let the below note in for people that find this PR -->
> [!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](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
- Setting the ActivityIndicator's IsRunning property to true and then
setting it back to false causes the ActivityIndicator to freeze and to
remain visible.

### Root Cause
- PR #28983 added Hidden = activityIndicator.Visibility !=
Visibility.Visible which runs after StopAnimating(). HidesWhenStopped
correctly set Hidden=True, but this line immediately overwrote it with
Hidden=False (since Visibility=Visible), leaving the native view visible
with no animation — the frozen static frame.

### Description of Change
- Replace activityIndicatorView.Hidden = activityIndicator.Visibility !=
Visibility.Visible with activityIndicatorView.Hidden = true in the
else-else branch of UpdateIsRunning, ensuring the native
UIActivityIndicatorView is always hidden when not both running and
visible, preventing the frozen static frame regression on
iOS/MacCatalyst.

### Issues Fixed
Fixes #36173

### Validated the behaviour in the following platforms

- [ ] Windows
- [ ] Android
- [x] iOS
- [x] Mac

### Output
| Before | After |
|----------|----------|
| <video
src="https://github.com/user-attachments/assets/53e12f75-f395-41a2-b2c2-7fb906143e8c">
| <video
src="https://github.com/user-attachments/assets/9e85be45-4ec6-412f-9b5a-92a896bd8f8d">
|
PureWeen pushed a commit that referenced this pull request Jul 7, 2026
…nning is set to false (#36263)

<!-- Please let the below note in for people that find this PR -->
> [!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](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
- Setting the ActivityIndicator's IsRunning property to true and then
setting it back to false causes the ActivityIndicator to freeze and to
remain visible.

### Root Cause
- PR #28983 added Hidden = activityIndicator.Visibility !=
Visibility.Visible which runs after StopAnimating(). HidesWhenStopped
correctly set Hidden=True, but this line immediately overwrote it with
Hidden=False (since Visibility=Visible), leaving the native view visible
with no animation — the frozen static frame.

### Description of Change
- Replace activityIndicatorView.Hidden = activityIndicator.Visibility !=
Visibility.Visible with activityIndicatorView.Hidden = true in the
else-else branch of UpdateIsRunning, ensuring the native
UIActivityIndicatorView is always hidden when not both running and
visible, preventing the frozen static frame regression on
iOS/MacCatalyst.

### Issues Fixed
Fixes #36173

### Validated the behaviour in the following platforms

- [ ] Windows
- [ ] Android
- [x] iOS
- [x] Mac

### Output
| Before | After |
|----------|----------|
| <video
src="https://github.com/user-attachments/assets/53e12f75-f395-41a2-b2c2-7fb906143e8c">
| <video
src="https://github.com/user-attachments/assets/9e85be45-4ec6-412f-9b5a-92a896bd8f8d">
|
kubaflo pushed a commit that referenced this pull request Jul 10, 2026
…nning is set to false (#36263)

<!-- Please let the below note in for people that find this PR -->
> [!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](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
- Setting the ActivityIndicator's IsRunning property to true and then
setting it back to false causes the ActivityIndicator to freeze and to
remain visible.

### Root Cause
- PR #28983 added Hidden = activityIndicator.Visibility !=
Visibility.Visible which runs after StopAnimating(). HidesWhenStopped
correctly set Hidden=True, but this line immediately overwrote it with
Hidden=False (since Visibility=Visible), leaving the native view visible
with no animation — the frozen static frame.

### Description of Change
- Replace activityIndicatorView.Hidden = activityIndicator.Visibility !=
Visibility.Visible with activityIndicatorView.Hidden = true in the
else-else branch of UpdateIsRunning, ensuring the native
UIActivityIndicatorView is always hidden when not both running and
visible, preventing the frozen static frame regression on
iOS/MacCatalyst.

### Issues Fixed
Fixes #36173

### Validated the behaviour in the following platforms

- [ ] Windows
- [ ] Android
- [x] iOS
- [x] Mac

### Output
| Before | After |
|----------|----------|
| <video
src="https://github.com/user-attachments/assets/53e12f75-f395-41a2-b2c2-7fb906143e8c">
| <video
src="https://github.com/user-attachments/assets/9e85be45-4ec6-412f-9b5a-92a896bd8f8d">
|
kubaflo pushed a commit that referenced this pull request Jul 15, 2026
…nning is set to false (#36263)

<!-- Please let the below note in for people that find this PR -->
> [!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](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
- Setting the ActivityIndicator's IsRunning property to true and then
setting it back to false causes the ActivityIndicator to freeze and to
remain visible.

### Root Cause
- PR #28983 added Hidden = activityIndicator.Visibility !=
Visibility.Visible which runs after StopAnimating(). HidesWhenStopped
correctly set Hidden=True, but this line immediately overwrote it with
Hidden=False (since Visibility=Visible), leaving the native view visible
with no animation — the frozen static frame.

### Description of Change
- Replace activityIndicatorView.Hidden = activityIndicator.Visibility !=
Visibility.Visible with activityIndicatorView.Hidden = true in the
else-else branch of UpdateIsRunning, ensuring the native
UIActivityIndicatorView is always hidden when not both running and
visible, preventing the frozen static frame regression on
iOS/MacCatalyst.

### Issues Fixed
Fixes #36173

### Validated the behaviour in the following platforms

- [ ] Windows
- [ ] Android
- [x] iOS
- [x] Mac

### Output
| Before | After |
|----------|----------|
| <video
src="https://github.com/user-attachments/assets/53e12f75-f395-41a2-b2c2-7fb906143e8c">
| <video
src="https://github.com/user-attachments/assets/9e85be45-4ec6-412f-9b5a-92a896bd8f8d">
|
kubaflo pushed a commit that referenced this pull request Jul 22, 2026
…nning is set to false (#36263)

<!-- Please let the below note in for people that find this PR -->
> [!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](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
- Setting the ActivityIndicator's IsRunning property to true and then
setting it back to false causes the ActivityIndicator to freeze and to
remain visible.

### Root Cause
- PR #28983 added Hidden = activityIndicator.Visibility !=
Visibility.Visible which runs after StopAnimating(). HidesWhenStopped
correctly set Hidden=True, but this line immediately overwrote it with
Hidden=False (since Visibility=Visible), leaving the native view visible
with no animation — the frozen static frame.

### Description of Change
- Replace activityIndicatorView.Hidden = activityIndicator.Visibility !=
Visibility.Visible with activityIndicatorView.Hidden = true in the
else-else branch of UpdateIsRunning, ensuring the native
UIActivityIndicatorView is always hidden when not both running and
visible, preventing the frozen static frame regression on
iOS/MacCatalyst.

### Issues Fixed
Fixes #36173

### Validated the behaviour in the following platforms

- [ ] Windows
- [ ] Android
- [x] iOS
- [x] Mac

### Output
| Before | After |
|----------|----------|
| <video
src="https://github.com/user-attachments/assets/53e12f75-f395-41a2-b2c2-7fb906143e8c">
| <video
src="https://github.com/user-attachments/assets/9e85be45-4ec6-412f-9b5a-92a896bd8f8d">
|
kubaflo pushed a commit that referenced this pull request Jul 28, 2026
…nning is set to false (#36263)

<!-- Please let the below note in for people that find this PR -->
> [!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](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
- Setting the ActivityIndicator's IsRunning property to true and then
setting it back to false causes the ActivityIndicator to freeze and to
remain visible.

### Root Cause
- PR #28983 added Hidden = activityIndicator.Visibility !=
Visibility.Visible which runs after StopAnimating(). HidesWhenStopped
correctly set Hidden=True, but this line immediately overwrote it with
Hidden=False (since Visibility=Visible), leaving the native view visible
with no animation — the frozen static frame.

### Description of Change
- Replace activityIndicatorView.Hidden = activityIndicator.Visibility !=
Visibility.Visible with activityIndicatorView.Hidden = true in the
else-else branch of UpdateIsRunning, ensuring the native
UIActivityIndicatorView is always hidden when not both running and
visible, preventing the frozen static frame regression on
iOS/MacCatalyst.

### Issues Fixed
Fixes #36173

### Validated the behaviour in the following platforms

- [ ] Windows
- [ ] Android
- [x] iOS
- [x] Mac

### Output
| Before | After |
|----------|----------|
| <video
src="https://github.com/user-attachments/assets/53e12f75-f395-41a2-b2c2-7fb906143e8c">
| <video
src="https://github.com/user-attachments/assets/9e85be45-4ec6-412f-9b5a-92a896bd8f8d">
|
kubaflo pushed a commit that referenced this pull request Jul 29, 2026
…nning is set to false (#36263)

<!-- Please let the below note in for people that find this PR -->
> [!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](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
- Setting the ActivityIndicator's IsRunning property to true and then
setting it back to false causes the ActivityIndicator to freeze and to
remain visible.

### Root Cause
- PR #28983 added Hidden = activityIndicator.Visibility !=
Visibility.Visible which runs after StopAnimating(). HidesWhenStopped
correctly set Hidden=True, but this line immediately overwrote it with
Hidden=False (since Visibility=Visible), leaving the native view visible
with no animation — the frozen static frame.

### Description of Change
- Replace activityIndicatorView.Hidden = activityIndicator.Visibility !=
Visibility.Visible with activityIndicatorView.Hidden = true in the
else-else branch of UpdateIsRunning, ensuring the native
UIActivityIndicatorView is always hidden when not both running and
visible, preventing the frozen static frame regression on
iOS/MacCatalyst.

### Issues Fixed
Fixes #36173

### Validated the behaviour in the following platforms

- [ ] Windows
- [ ] Android
- [x] iOS
- [x] Mac

### Output
| Before | After |
|----------|----------|
| <video
src="https://github.com/user-attachments/assets/53e12f75-f395-41a2-b2c2-7fb906143e8c">
| <video
src="https://github.com/user-attachments/assets/9e85be45-4ec6-412f-9b5a-92a896bd8f8d">
|
@github-actions github-actions Bot locked and limited conversation to collaborators Aug 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-controls-activityindicator ActivityIndicator community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration platform/ios s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates s/agent-gate-passed AI verified tests catch the bug (fail without fix, pass with fix) 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.

[iOS] ActivityIndicator freezes and remains visible after setting IsRunning to false — regression in Microsoft.Maui.Controls > 10.0.51

5 participants