Repository navigation
Description
Description
On iOS attempting to use a CarouselView with data templates and a template selector fails with a ObjCRuntime.CObjCException: "Name: NSInternalInconsistencyException Reason: Attempted to dequeue a cell for a different registration or reuse identifier than the existing cell when reconfiguring an item, which is not allowed. You must dequeue a cell using the same registration or reuse identifier that was used to dequeue the cell originally to obtain the existing cell."
Steps to Reproduce
See the attached repro project. Also available at: https://github.com/jbcomp/JBCT-1948B-MauiCarouselView
The example shows a horizontally scrollable CarouselView with two items each with a different data template.
REPRO
As per the project, using Microsoft.Maui.Controls v10.0.110:
-
On Android the carousel items are shown and it is possible to swipe horizontally between them. This functions correctly on all Android versions from 10 upwards.
-
On iOS the repro fails immediately on launch with a ObjCRuntime.CObjCException: "Name: NSInternalInconsistencyException Reason: Attempted to dequeue a cell for a different registration or reuse identifier than the existing cell when reconfiguring an item, which is not allowed. You must dequeue a cell using the same registration or reuse identifier that was used to dequeue the cell originally to obtain the existing cell."
This has been verified on iOS 26.5 only, but probably applies to all versions.
REGRESSION
Modify to use Microsoft.Maui.Controls v10.0.90, and it functions as expected on iOS - the carousel items are shown and it is possible to swipe between them. This regression issue was introduce in Microsoft.Maui.Control v10.0.100.
Link to public reproduction project repository
https://github.com/jbcomp/JBCT-1948B-MauiCarouselView
Version with bug
10.0.110
Is this a regression from previous behavior?
Yes, this used to work in .NET MAUI
Last version that worked well
10.0.90
Affected platforms
iOS
Affected platform versions
No response
Did you find any workaround?
Only by reverting to the earlier handler:
#if IOS || MACCATALYST
builder.ConfigureMauiHandlers(handlers =>
{
handlers.AddHandler<
Microsoft.Maui.Controls.CarouselView,
Microsoft.Maui.Controls.Handlers.Items.CarouselViewHandler>();
});
#endif
Activity
HarishKumarSF4517 commentedon Oct 7, 2026
This issue has been validated in Visual Studio Code 1.140.0 with .NET MAUI versions 10.0.90, 10.0.100 and 10.0.110. It can be reproduced from 10.0.100 version on iOS26 platform. I have attached the output below:
Note: This issue not occurs on iOS18 on 10.0.110 version
[iOS] Fix CarouselView template selector crash during cell reconfigur… (
[inflight/candidate] [iOS] Fix CarouselView template selector crash d…
kubaflo commentedon Oct 13, 2026
Fixed in #39228, with the same fix ported to
inflight/candidatein #39254. The Items2 controller preserves the existing UIKit cell reuse identifier during reconfiguration, preventing the reported template-selector exception. Closing based on the merged fix; package availability follows release promotion.[iOS] Fix CarouselView template selector crash during cell reconfigur… (
[inflight/candidate] [iOS] Fix CarouselView template selector crash d…
[iOS] Fix CarouselView template selector crash during cell reconfigur… (
[inflight/candidate] [iOS] Fix CarouselView template selector crash d…
[iOS] Fix CarouselView template selector crash during cell reconfigur… (
[inflight/candidate] [iOS] Fix CarouselView template selector crash d…