-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Description
When a .NET MAUI application initializes a TabbedPage with its default handler (Handlers.Compatibility.TabbedRenderer) in a windowed application with a width of 667 points or less on iPadOS 26.1, the application crashes with a null reference exception deep within the framework code. When the window width exceeds 667 points, the TabbedPage and its contents load and display properly.
| Width < 667 (Non-working Scenario) | ![]() |
![]() |
|---|---|---|
| Width > 667 (Working Scenario) | ![]() |
![]() |
Stack Trace
at Microsoft.Maui.Controls.Handlers.Compatibility.TabbedRenderer.get_Element()
at Microsoft.Maui.Controls.Handlers.Compatibility.TabbedRenderer.ViewDidLayoutSubviews()
at ObjCRuntime.Messaging.IntPtr_objc_msgSendSuper(IntPtr receiver, IntPtr selector)
at UIKit.UITabBarController..ctor()
at Microsoft.Maui.Controls.Handlers.Compatibility.TabbedRenderer..ctor()
at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
at System.RuntimeType.CreateInstanceMono(Boolean nonPublic, Boolean wrapExceptions)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean wrapExceptions)
at System.Activator.CreateInstance(Type type, Boolean nonPublic, Boolean wrapExceptions)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Activator.CreateInstance(Type type)
at Microsoft.Maui.Hosting.Internal.MauiFactory.CreateInstance(ServiceDescriptor item)
at Microsoft.Maui.Hosting.Internal.MauiFactory.GetService(Type serviceType)
at Microsoft.Maui.Hosting.Internal.MauiHandlersFactory.GetHandler(Type type)
at Microsoft.Maui.Platform.ElementExtensions.ToHandler(IElement view, IMauiContext context)
at Microsoft.Maui.Platform.ElementExtensions.ToPlatform(IElement view, IMauiContext context)
at Microsoft.Maui.Controls.Handlers.Compatibility.NavigationRenderer.CreateViewControllerForPage(Page page)
at Microsoft.Maui.Controls.Handlers.Compatibility.NavigationRenderer.<OnPushAsync>d__60.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.Maui.Controls.Handlers.Compatibility.NavigationRenderer.OnPushAsync(Page page, Boolean animated)
at Microsoft.Maui.Controls.Handlers.Compatibility.NavigationRenderer.PushPageAsync(Page page, Boolean animated)
at Microsoft.Maui.Controls.Handlers.Compatibility.NavigationRenderer.OnPushRequested(Object sender, NavigationRequestedEventArgs e)
at Microsoft.Maui.Controls.NavigationPage.<PushAsyncInner>d__136.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.Maui.Controls.NavigationPage.PushAsyncInner(Page page, Boolean animated)
at Microsoft.Maui.Controls.NavigationPage.<PushAsync>d__67.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.Maui.Controls.NavigationPage.PushAsync(Page page, Boolean animated)
at Microsoft.Maui.Controls.NavigationPage.NavigationImpl.OnPushAsync(Page root, Boolean animated)
at Microsoft.Maui.Controls.Internals.NavigationProxy.PushAsync(Page root, Boolean animated)
at Microsoft.Maui.Controls.Internals.NavigationProxy.PushAsync(Page root)
at MauiWindowingTest.IntermPageViewModel.<>c.<.ctor>b__17_0() in C:\REDACTED\MauiWindowingTest\IntermPage.xaml.cs:line 47
at Microsoft.Maui.Controls.Command.<>c__DisplayClass4_0.<.ctor>b__0(Object o)
at Microsoft.Maui.Controls.Command.Execute(Object parameter)
at Microsoft.Maui.Controls.ButtonElement.ElementClicked(VisualElement visualElement, IButtonElement ButtonElementManager)
at Microsoft.Maui.Controls.Button.SendClicked()
at Microsoft.Maui.Controls.Button.Microsoft.Maui.IButton.Clicked()
at Microsoft.Maui.Handlers.ButtonHandler.ButtonEventProxy.OnButtonTouchUpInside(Object sender, EventArgs e)
at UIKit.UIControlEventProxy.Activated()
at UIKit.UIApplication.xamarin_UIApplicationMain(Int32 argc, IntPtr argv, IntPtr principalClassName, IntPtr delegateClassName, IntPtr* gchandle)
at UIKit.UIApplication.UIApplicationMain(Int32 argc, String[] argv, IntPtr principalClassName, IntPtr delegateClassName)
at UIKit.UIApplication.Main(String[] args, Type principalClass, Type delegateClass)
at MauiWindowingTest.Program.Main(String[] args) in C:\REDACTED\MauiWindowingTest\Platforms\iOS\Program.cs:line 13
Although the exception appears to be managed code, the problem is occurring on the native side during instantiation of UITabBarController, likely related to how tab controls handle the compact style/size class in narrow viewports. The exception cannot be caught on the managed side—the application simply stops responding or crashes altogether.
Basic Information
- Version with issue: Microsoft.Maui.Controls 10.0.10 (Also tested with 10.0.0 & 9.0.120, same result), iPadOS 26.1
- Last known good version: iPadOS < 26.1 (works correctly)
- IDE: Visual Studio 2026 with Mac pair
- Tested on:
- iPad Pro 11-inch (M4) - simulator ❌
- iPad Air 13-inch (M3) - simulator ❌
- iPad mini (A17 Pro) - simulator ❌
- iPad Pro 11-inch (3rd Gen) - device ❌
Additional Context
- The issue does not occur with the obsolete compatibility
TabbedRenderer(Compatibility.Platform.iOS) - The issue does not occur with iPadOS versions < 26.1
- The issue is specific to the
Handlers.Compatibility.TabbedRendererimplementation
Steps to Reproduce
- Create a tabbed page with some contents
- Add it to your application (either as
MainPageor as aNavigationPageitem) - Run the application on an iPadOS 26.1 device or simulator
- Resize the app window to be less than 667 points in width (Enable Windowed Apps/Stage Manager if not already enabled)
- Navigate to the tabbed page
Expected Outcome: The TabbedPage contents should load and display correctly regardless of the window width.
Actual Outcome: The application becomes unresponsive or crashes with a null reference exception.
Link to public reproduction project repository
Version with bug
10.0.10
Is this a regression from previous behavior?
Yes, this used to work in .NET MAUI
Last version that worked well
Unknown/Other
Affected platforms
iOS
Affected platform versions
iPadOS 26.1/26.2
Did you find any workaround?
Currently, there is no confirmed workaround. However, the following may help:
- Avoid using
TabbedPagein applications that support windowing on iPadOS 26.1 - Use larger window sizes (> 667 points) if possible
- Use the older compatibility renderer [deprecated]
Relevant log output
Metadata
Metadata
Assignees
Labels
Type
Projects
Status



