Describe the bug
We observed an intermittent crash on iPadOS 26.x when using IQKeyboardManager 6.5.19 with numeric/phone input fields.
The crash happens while switching from a phone number field to a verification code field. The exception is thrown by UIKit constraint activation:
NSGenericException
Unable to activate constraint with anchors <UIView.top> and <_UIRemoteKeyboardPlaceholderView.bottom> because they have no common ancestor.
This seems related to the iPad floating numeric keyboard / keyboard placeholder view. In one user video, the keyboard was partially dismissed while the IQKeyboardManager toolbar was still visible. If the user tapped the toolbar Done button first, the login flow could continue normally.
We cannot prove IQKeyboardManager is the root cause, but the issue appears to be triggered or amplified when IQKeyboardManager's AutoToolbar is involved.
To Reproduce
The issue is intermittent and we have not been able to reproduce it consistently on our own devices.
Observed user flow:
- Open a login/register screen on iPad.
- Tap a phone number text field using
UIKeyboardTypePhonePad / numeric keyboard.
- Tap "Send verification code".
- Tap the verification code input field.
- App crashes with the UIKit constraint exception.
Observed condition:
- iPad floating numeric keyboard is involved.
- IQKeyboardManager AutoToolbar may remain visible while the keyboard is partially dismissed.
- Tapping the IQKeyboardManager toolbar Done button before continuing avoids the crash in the user video.
Expected behavior
Switching between numeric text fields should not crash. IQKeyboardManager should not leave UIKit keyboard placeholder/toolbar state in a hierarchy that can trigger a constraint activation exception.
Screenshots
We can provide crash screenshots/log screenshots if needed.
Demo Project
No minimal demo project yet. The issue is intermittent and currently only reproduced in production user reports.
Versions
Xcode: 26.3
iOS/iPadOS: iPadOS 26.3 / 26.5
Device: iPad mini 6th generation, iPad models on iPadOS 26.x
Library Version: IQKeyboardManager 6.5.19
Additional context
Crash signature:
#44002 NSGenericException
Unable to activate constraint with anchors <NSLayoutYAxisAnchor:0x14e27cd40 "UIView:0x14e34ddc0.top"> and <NSLayoutYAxisAnchor:0x14eda0440 "_UIRemoteKeyboardPlaceholderView:0x14ed7ca00.bottom"> because they have no common ancestor. Does the constraint or its anchors reference items in different view hierarchies? That's illegal.
CoreFoundation __exceptionPreprocess
0 CoreFoundation
__exceptionPreprocess + 164
1 libobjc.A.dylib
objc_exception_throw + 88
2 CoreAutoLayout
0x00000001e726a000 + 9896
3 CoreAutoLayout
0x00000001e726a000 + 38376
4 CoreAutoLayout
0x00000001e726a000 + 14924
5 CoreAutoLayout
0x00000001e726a000 + 35908
6 UIKitCore
-[UIInputWindowControllerHostingItem updateViewConstraints] + 8268
7 UIKitCore
-[UIInputWindowController updateSupportsDockViewController] + 300
8 UIKitCore
-[UIKeyboardImpl didMoveToWindow] + 140
9 UIKitCore
-[UIView(Internal) _didMoveFromWindow:toWindow:] + 1936
10 UIKitCore
-[UIView(Internal) _didMoveFromWindow:toWindow:] + 716
11 UIKitCore
-[UIView(Internal) _didMoveFromWindow:toWindow:] + 716
12 UIKitCore
__45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 132
13 CoreAutoLayout
0x00000001e726a000 + 14924
14 UIKitCore
-[UIView _postMovedFromSuperview:] + 528
15 UIKitCore
-[UIView(Internal) _addSubview:positioned:relativeTo:] + 2324
16 UIKitCore
-[UIInputWindowControllerHostingItem setInputView:] + 176
17 UIKitCore
-[UIInputWindowControllerHosting setInputSetView:forType:] + 260
18 UIKitCore
-[UIInputWindowController changeToInputViewSet:] + 976
19 UIKitCore
__43-[UIInputWindowController setInputViewSet:]_block_invoke + 44
Describe the bug
We observed an intermittent crash on iPadOS 26.x when using IQKeyboardManager 6.5.19 with numeric/phone input fields.
The crash happens while switching from a phone number field to a verification code field. The exception is thrown by UIKit constraint activation:
NSGenericExceptionUnable to activate constraint with anchors <UIView.top> and <_UIRemoteKeyboardPlaceholderView.bottom> because they have no common ancestor.This seems related to the iPad floating numeric keyboard / keyboard placeholder view. In one user video, the keyboard was partially dismissed while the IQKeyboardManager toolbar was still visible. If the user tapped the toolbar Done button first, the login flow could continue normally.
We cannot prove IQKeyboardManager is the root cause, but the issue appears to be triggered or amplified when IQKeyboardManager's AutoToolbar is involved.
To Reproduce
The issue is intermittent and we have not been able to reproduce it consistently on our own devices.
Observed user flow:
UIKeyboardTypePhonePad/ numeric keyboard.Observed condition:
Expected behavior
Switching between numeric text fields should not crash. IQKeyboardManager should not leave UIKit keyboard placeholder/toolbar state in a hierarchy that can trigger a constraint activation exception.
Screenshots
We can provide crash screenshots/log screenshots if needed.
Demo Project
No minimal demo project yet. The issue is intermittent and currently only reproduced in production user reports.
Versions
Xcode: 26.3
iOS/iPadOS: iPadOS 26.3 / 26.5
Device: iPad mini 6th generation, iPad models on iPadOS 26.x
Library Version: IQKeyboardManager 6.5.19
Additional context
Crash signature:
#44002 NSGenericException
Unable to activate constraint with anchors <NSLayoutYAxisAnchor:0x14e27cd40 "UIView:0x14e34ddc0.top"> and <NSLayoutYAxisAnchor:0x14eda0440 "_UIRemoteKeyboardPlaceholderView:0x14ed7ca00.bottom"> because they have no common ancestor. Does the constraint or its anchors reference items in different view hierarchies? That's illegal.
CoreFoundation __exceptionPreprocess
0 CoreFoundation
__exceptionPreprocess + 164
1 libobjc.A.dylib
objc_exception_throw + 88
2 CoreAutoLayout
0x00000001e726a000 + 9896
3 CoreAutoLayout
0x00000001e726a000 + 38376
4 CoreAutoLayout
0x00000001e726a000 + 14924
5 CoreAutoLayout
0x00000001e726a000 + 35908
6 UIKitCore
-[UIInputWindowControllerHostingItem updateViewConstraints] + 8268
7 UIKitCore
-[UIInputWindowController updateSupportsDockViewController] + 300
8 UIKitCore
-[UIKeyboardImpl didMoveToWindow] + 140
9 UIKitCore
-[UIView(Internal) _didMoveFromWindow:toWindow:] + 1936
10 UIKitCore
-[UIView(Internal) _didMoveFromWindow:toWindow:] + 716
11 UIKitCore
-[UIView(Internal) _didMoveFromWindow:toWindow:] + 716
12 UIKitCore
__45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 132
13 CoreAutoLayout
0x00000001e726a000 + 14924
14 UIKitCore
-[UIView _postMovedFromSuperview:] + 528
15 UIKitCore
-[UIView(Internal) _addSubview:positioned:relativeTo:] + 2324
16 UIKitCore
-[UIInputWindowControllerHostingItem setInputView:] + 176
17 UIKitCore
-[UIInputWindowControllerHosting setInputSetView:forType:] + 260
18 UIKitCore
-[UIInputWindowController changeToInputViewSet:] + 976
19 UIKitCore
__43-[UIInputWindowController setInputViewSet:]_block_invoke + 44