- 
                Notifications
    
You must be signed in to change notification settings  - Fork 1.9k
 
Open
Labels
s/try-latest-versionPlease try to reproduce the potential issue on the latest public versionPlease try to reproduce the potential issue on the latest public version
Description
Apple platform
iOS
Framework version
net9.0-*
Affected platform version
.NET 9.0.306, iOS SDK 26.0.9752 (Xcode 26.0.1)
Description
MAUI applications using Shell crash consistently on iOS 26 (both simulator and device) with watchdog timeouts (0x8BADF00D) due to infinite layout loops in ShellItemRenderer.viewWillLayoutSubviews. The crash occurs during UINavigationController layout calculations and can be repo'd on a barebones sample app.
Key observations:
- Same MAUI Shell app works perfectly on iOS 17 and iOS 18
 - Crashes only occur on iOS 26 (simulator: iossimulator-arm64, device: ios-arm64)
 - Stack traces show infinite recursion in UINavigationController layout methods
 - Crash occurs during app launch (scene-create) or early UI updates (scene-update)
 
DotNet 9 MAUI Crash - Test App & Crash Logs.zip
Steps to Reproduce
- Create a new MAUI project targeting net9.0-ios26.0
 - Use Shell architecture with AppShell containing ShellContent
 - Build for iOS 26 target (either iossimulator-arm64 or ios-arm64)
 - Deploy to iOS 26 simulator or device
 - Launch the app
 
Did you find any workaround?
- Target iOS 17/18: Apps work perfectly when targeting earlier iOS versions
 - Downgrade to .NET 8: Using net8.0-ios18.0 with iOS 18 SDK works correctly
 
Relevant logs
Physical iOS 26 Device Crash Log
Termination Reason:  Namespace FRONTBOARD, Code 2343432205, 
<RBSTerminateContext| domain:10 code:0x8BADF00D explanation:scene-create watchdog transgression: app<com.test.mauitestapp(FEEDEEEE-DDDD-CCCC-BBBB-0000000001F5)>:1520 exhausted real (wall clock) time allowance of 17.61 seconds
ProcessVisibility: Foreground
ProcessState: Running
WatchdogEvent: scene-create
WatchdogVisibility: Foreground
WatchdogCPUStatistics: (
"Elapsed total CPU time (seconds): 23.140 (user 20.910, system 2.230), 21% CPU",
"Elapsed application CPU time (seconds): 18.586, 17% CPU"
)
ThermalInfo: (
"Thermal Level:   0",
"Thermal State:   nominal"
) reportType:CrashLog maxTerminationResistance:Interactive>
Thread 0 name:  tid_103
Thread 0 Crashed:
0   MauiTestApp                   	       0x102bc5e94 find_objc_method_implementation(objc_super*, objc_object*, objc_selector*, void (*)()) + 104
1   MauiTestApp                   	       0x102bc5dec xamarin_invoke_objc_method_implementation + 64
2   MauiTestApp                   	       0x102bc6120 xamarin_retain_trampoline + 80
3   MauiTestApp                   	       0x102dec2e4 -[Microsoft_Maui_Controls_Platform_Compatibility_ShellItemRenderer retain] + 32
4   UIKitCore                     	       0x18e4176cc -[UIViewController _popoverController] + 76
5   UIKitCore                     	       0x18e418a5c -[UIViewController(UISplitViewController) splitViewController] + 28
6   UIKitCore                     	       0x18ef62840 -[UIViewController(BinaryCompatibility) _splitViewControllerEnforcingClass:] + 60
7   UIKitCore                     	       0x18eea2f24 -[UINavigationController _shouldDisplaySearchBarInlineForEffectiveSearchControllerGivenTopNavigationItem:traitCollection:] + 44
8   UIKitCore                     	       0x18e97b5c0 0x18e3cc000 + 5961152
9   UIKitCore                     	       0x18e986b88 0x18e3cc000 + 6007688
10  UIKitCore                     	       0x18e986c10 0x18e3cc000 + 6007824
11  UIKitCore                     	       0x18e45ef60 _isHeightOfTopViewsCoordinatedToMatchContentScrollViewOffsets + 160
12  UIKitCore                     	       0x18e460cac _isHeightOfTopViewsCoordinatedToMatchViewControllerOffsets + 68
13  UIKitCore                     	       0x18eea4ca0 -[UINavigationController _navigationBarSizeForViewController:proposedHeight:allowRubberBandStretch:] + 240
14  UIKitCore                     	       0x18eea4820 -[UINavigationController _calculateTopViewFramesForExpandedLayoutWithViewController:contentScrollView:gettingNavBarFrame:topPaletteFrame:] + 116
15  UIKitCore                     	       0x18eea3b64 -[UINavigationController _calculateTopViewFramesForLayoutWithViewController:contentScrollView:navBarFrame:topPaletteFrame:topLayoutType:] + 208
16  UIKitCore                     	       0x18eea38b8 -[UINavigationController _calculateTopLayoutInfoForViewController:] + 440
17  UIKitCore                     	       0x18eea1b30 -[UINavigationController _frameForViewController:] + 132
18  UIKitCore                     	       0x18eea70f4 -[UINavigationController _layoutViewController:] + 408
19  UIKitCore                     	       0x18eea126c -[UINavigationController _layoutTopViewControllerLookForNested:] + 444
20  UIKitCore                     	       0x18eea0a48 -[UINavigationController _updateBarsForCurrentInterfaceOrientationAndForceBarLayout:] + 180
21  UIKitCore                     	       0x18e48dab0 -[UITabBarController _updateLayoutForStatusBarAndInterfaceOrientation] + 40
22  UIKitCore                     	       0x18e7a50d4 0x18e3cc000 + 4034772
23  UIKitCore                     	       0x18e7a5270 0x18e3cc000 + 4035184
24  UIKitCore                     	       0x18e8d5a94 0x18e3cc000 + 5282452
25  MauiTestApp                   	       0x102bd488c xamarin_dyn_objc_msgSendSuper + 164
26  MauiTestApp                   	       0x102b8d89c interp_to_native_trampoline + 172
27  MauiTestApp                   	       0x102db9ae8 ves_pinvoke_method + 568
28  MauiTestApp                   	       0x102dace48 mono_interp_exec_method + 3016
29  MauiTestApp                   	       0x102daa048 interp_entry_from_trampoline + 656
30  MauiTestApp                   	       0x102b8d970 native_to_interp_trampoline + 112
31  MauiTestApp                   	       0x102dec78c -[Microsoft_Maui_Controls_Platform_Compatibility_ShellItemRenderer viewWillLayoutSubviews] + 96
32  UIKitCore                     	       0x18e9ec8a4 0x18e3cc000 + 6424740
33  UIKitCore                     	       0x18e9ecc8c 0x18e3cc000 + 6425740
34  UIKitCore                     	       0x18fc6d110 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1324
35  QuartzCore                    	       0x18d91ae34 CA::Layer::perform_update_(CA::Layer*, CALayer*, unsigned int, CA::Transaction*) + 352
36  QuartzCore                    	       0x18d91aab8 CA::Layer::update_if_needed(CA::Transaction*, unsigned int, unsigned int) + 600
37  QuartzCore                    	       0x18d692d4c CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 200
38  QuartzCore                    	       0x18d694bb4 CA::Context::commit_transaction(CA::Transaction*, double, double*) + 540
39  QuartzCore                    	       0x18d694014 CA::Transaction::commit() + 644
40  UIKitCore                     	       0x18e46f4a0 __34-[UIApplication _firstCommitBlock]_block_invoke_2 + 36
41  CoreFoundation                	       0x18b7529f0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 28
42  CoreFoundation                	       0x18b7112bc __CFRunLoopDoBlocks + 352
43  CoreFoundation                	       0x18b7121d8 __CFRunLoopRun + 868
44  CoreFoundation                	       0x18b80a460 _CFRunLoopRunSpecificWithOptions + 564
45  GraphicsServices              	       0x1dca69424 GSEventRunModal + 120
46  UIKitCore                     	       0x18e44c478 -[UIApplication _run] + 792
47  UIKitCore                     	       0x18e439e4c UIApplicationMain + 336
48  MauiTestApp                   	       0x102ba45a4 xamarin_UIApplicationMain + 60
49  MauiTestApp                   	       0x102dbb190 do_icall + 316
50  MauiTestApp                   	       0x102db9760 do_icall_wrapper + 348
51  MauiTestApp                   	       0x102dacc94 mono_interp_exec_method + 2580
52  MauiTestApp                   	       0x102daa84c interp_runtime_invoke + 236
53  MauiTestApp                   	       0x102d792fc mono_jit_runtime_invoke + 1244
54  MauiTestApp                   	       0x102d226f8 mono_runtime_invoke_checked + 148
55  MauiTestApp                   	       0x102d285fc mono_runtime_exec_main_checked + 116
56  MauiTestApp                   	       0x102d7fdc4 mono_jit_exec + 356
57  MauiTestApp                   	       0x102bd32f0 xamarin_main + 2032
58  MauiTestApp                   	       0x102dea4c4 main + 64
59  dyld                          	       0x1889b36dc start + 6188
iOS 26 Simulator Crash Log
Termination Reason:  Namespace FRONTBOARD, Code 2343432205, 
<RBSTerminateContext| domain:10 code:0x8BADF00D explanation:scene-update watchdog transgression: app<com.test.mauitestapp((null))>:12262 exhausted real (wall clock) time allowance of 10.00 seconds
ProcessVisibility: Background
ProcessState: Running
WatchdogEvent: scene-update
WatchdogVisibility: Background
WatchdogCPUStatistics: (
"Elapsed total CPU time (seconds): 49.550 (user 34.280, system 15.270), 38% CPU",
"Elapsed application CPU time (seconds): 10.889, 8% CPU"
) reportType:CrashLog maxTerminationResistance:Interactive>
Thread 0 Crashed:: tid_103
0   libobjc.A.dylib               	       0x1800983b4 AutoreleasePoolPage::moveTLSAutoreleaseToPool(ReturnAutoreleaseInfo) + 4
1   libobjc.A.dylib               	       0x18009b1c4 objc_autoreleaseReturnValue + 64
2   UIKitCore                     	       0x185a8b470 -[UIViewController _contentScrollViewHeuristic] + 416
3   UIKitCore                     	       0x185a8b27c -[UIViewController _defaultContentScrollViewForEdge:] + 200
4   UIKitCore                     	       0x185a8afbc -[UIViewController _resolveContentScrollViewForEdge:] + 168
5   UIKitCore                     	       0x185a8b1a8 -[UIViewController _contentOrObservableScrollViewForEdge:] + 20
6   UIKitCore                     	       0x1859dfac0 _insetCoordinatableContentScrollViewForEdgePotentiallyIgnoringSearch + 148
7   UIKitCore                     	       0x1859e6874 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 68
8   UIKitCore                     	       0x1859dc2b4 __105-[UINavigationController _repositionPaletteWithNavigationBarHidden:duration:shouldUpdateNavigationItems:]_block_invoke + 476
9   UIKitCore                     	       0x1859dc0a8 -[UINavigationController _repositionPaletteWithNavigationBarHidden:duration:shouldUpdateNavigationItems:] + 256
10  UIKitCore                     	       0x1859e4154 -[UINavigationController _updateBarsForCurrentInterfaceOrientationAndForceBarLayout:] + 124
11  UIKitCore                     	       0x1859c14f0 -[UITabBarController _updateLayoutForStatusBarAndInterfaceOrientation] + 36
12  UIKitCore                     	       0x1852bc044 0x185156000 + 1466436
13  UIKitCore                     	       0x1852bc2e0 0x185156000 + 1467104
14  UIKitCore                     	       0x1853d61c0 0x185156000 + 2621888
15  libxamarin-dotnet-debug.dylib 	       0x100d39c2c xamarin_dyn_objc_msgSendSuper + 164
16  MauiTestApp                   	       0x1002f189c interp_to_native_trampoline + 172
17  libmonosgen-2.0.dylib         	       0x101088a94 ves_pinvoke_method + 584
18  libmonosgen-2.0.dylib         	       0x10107d200 mono_interp_exec_method + 2936
19  libmonosgen-2.0.dylib         	       0x10107ac54 interp_runtime_invoke + 244
20  libmonosgen-2.0.dylib         	       0x100f966b8 mono_jit_runtime_invoke + 1244
21  libmonosgen-2.0.dylib         	       0x101156ecc mono_runtime_try_invoke + 156
22  libmonosgen-2.0.dylib         	       0x101159074 mono_runtime_invoke + 484
23  libxamarin-dotnet-debug.dylib 	       0x100d30960 xamarin_invoke_trampoline + 5424
24  libxamarin-dotnet-debug.dylib 	       0x100d387f4 xamarin_arch_trampoline + 148
25  libxamarin-dotnet-debug.dylib 	       0x100d399f0 xamarin_arm64_common_trampoline + 64
26  UIKitCore                     	       0x1854e09e8 0x185156000 + 3713512
27  UIKitCore                     	       0x1854e0d48 0x185156000 + 3714376
28  UIKitCore                     	       0x186849010 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1308
29  QuartzCore                    	       0x18c65eb1c CA::Layer::perform_update_(CA::Layer*, CALayer*, unsigned int, CA::Transaction*) + 348
30  QuartzCore                    	       0x18c65e48c CA::Layer::update_if_needed(CA::Transaction*, unsigned int, unsigned int) + 536
31  QuartzCore                    	       0x18c669f14 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 176
32  QuartzCore                    	       0x18c581804 CA::Context::commit_transaction(CA::Transaction*, double, double*) + 544
33  QuartzCore                    	       0x18c5b16e0 CA::Transaction::commit() + 636
34  UIKitCore                     	       0x1862785a8 __34-[UIApplication _firstCommitBlock]_block_invoke_2 + 32
35  CoreFoundation                	       0x18044d2a8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 20
36  CoreFoundation                	       0x18044ca30 __CFRunLoopDoBlocks + 340
37  CoreFoundation                	       0x18044bda0 __CFRunLoopRun + 788
38  CoreFoundation                	       0x180446e24 _CFRunLoopRunSpecificWithOptions + 496
39  GraphicsServices              	       0x1925319bc GSEventRunModal + 116
40  UIKitCore                     	       0x18625fc3c -[UIApplication _run] + 772
41  UIKitCore                     	       0x186263e64 UIApplicationMain + 124
42  libxamarin-dotnet-debug.dylib 	       0x100ce9a4c xamarin_UIApplicationMain + 60
43  libmonosgen-2.0.dylib         	       0x10108a1dc do_icall + 316
44  libmonosgen-2.0.dylib         	       0x1010886fc do_icall_wrapper + 356
45  libmonosgen-2.0.dylib         	       0x10107d020 mono_interp_exec_method + 2456
46  libmonosgen-2.0.dylib         	       0x10107ac54 interp_runtime_invoke + 244
47  libmonosgen-2.0.dylib         	       0x100f966b8 mono_jit_runtime_invoke + 1244
48  libmonosgen-2.0.dylib         	       0x1011554c8 mono_runtime_invoke_checked + 148
49  libmonosgen-2.0.dylib         	       0x10115c734 mono_runtime_exec_main_checked + 116
50  libmonosgen-2.0.dylib         	       0x100fe97cc mono_jit_exec + 364
51  libxamarin-dotnet-debug.dylib 	       0x100d38690 xamarin_main + 2032
52  MauiTestApp                   	       0x1003c5e1c main + 64 (main.arm64.mm:77)
53  ???                           	       0x1007b53d0 ???
54  dyld                          	       0x1009ccd54 start + 7184
Metadata
Metadata
Assignees
Labels
s/try-latest-versionPlease try to reproduce the potential issue on the latest public versionPlease try to reproduce the potential issue on the latest public version