Error: CoreData Could Not Fulfill a Fault. NSObjectInaccessibleException
One of the common errors when using CoreData is
*** Terminating app due to uncaught exception 'NSObjectInaccessibleException', reason: 'CoreData could not fulfill a fault for '0x10123456 <x-coredata://3E1F9B1C-46BE-49F8-A3ED-1234567BF0/Event/p42>
This is what happened:
CoreData tried to access the entity, but it could not even fulfill a fault. It is most likely because the entity is no longer around, aka deleted.
Read Apple CoreData troubleshooting guide on such object life-cycle problem.
I have encountered this more than once when using
NSFetchedResultsController and with
NSFetchedResultsControlleris using it’s a context for fetching the entities
Magical Recordis using another context to update/delete some entities
Magical Recorddeletes an entity,
NSFetchedResultsControllerhas the (crashing) error
The solution is to be careful with using multiple contexts and avoid the scenario.
Okay, let me give you a more meaningful workaround: If you are deleting, you might want to “mark for delete” instead. Then let
NSFetchedResultsController to run at some interval to remove the marked entities.