I've got Cell should never be in update animation crash in UICollectionView reported by crashlytics This crash happens only for users on iOS 14. It wasn't noticeable when the application used SDK iOS 13 (it affected less than 0.01 % of all users). But after supporting SDK iOS 14, crash frequency noticeably increased to almost 0.25 % of all users. Internally UICollectionView, as far as I understand (from some UIKit disassembly journey), loops through visible cells and checks that a cell animation counter is equal to zero (else, it crashes with the following stack trace). It's not for sure, but presumably crash happens while performBatchUpdates(_:completion:) I couldn't reproduce this bug, and I can't spend more time digging into UIKitCore disassembled code to understand when and why this animation counter changes.
Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x1915e9114 __exceptionPreprocess
1 libobjc.A.dylib 0x1a4e0fcb4 objc_exception_throw
2 CoreFoundation 0x1914f8308 -[CFPrefsSearchListSource addManagedSourceForIdentifier:user:]
3 Foundation 0x1927dc2c8 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:]
4 UIKitCore 0x1935b8548 __43-[UICollectionView _updateVisibleCellsNow:]_block_invoke_4.1070
5 UIKitCore 0x1935b8000 __43-[UICollectionView _updateVisibleCellsNow:]_block_invoke.1053
6 libdispatch.dylib 0x191221298 _dispatch_call_block_and_release
7 libdispatch.dylib 0x191222280 _dispatch_client_callout
8 libdispatch.dylib 0x1911d123c _dispatch_main_queue_callback_4CF$VARIANT$mp
9 CoreFoundation 0x191568c30 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
10 CoreFoundation 0x1915630e8 __CFRunLoopRun
11 CoreFoundation 0x191562200 CFRunLoopRunSpecific
12 GraphicsServices 0x1a765d598 GSEventRunModal
13 UIKitCore 0x193e28004 -[UIApplication _run]
14 UIKitCore 0x193e2d5d8 UIApplicationMain
15 App 0x100dd2d1c main + 49 (main.m:49)
16 libdyld.dylib 0x191241598 start
Did anyone face the same issue? Were you able to reproduce it?