Check out your KVO. In my case, this was because I used addObserver with NSKeyValueObservingOptionOld and a custom property method that has a keyPathsForValuesAffecting method, and in its recipient I accessed the relationship property. The KVO mechanics NSKeyValueWillChangeBySetting calls the getter as the object is reset (all setters are called by the calling values) and is executed so early that the relationship object is not loaded yet. The first attempt at a workaround was to directly monitor the keys involved in keyPathsForValuesAffecting , instead of the name of the custom property key.
source share