CoreData permanentID set only for root context of persistentCoordinator

Hello. I had some problems related to objectID, let me try to describe it. I had 3 managed object contexts: context A - root private context of persistentCoordiantor, used for write changes to persistentStore. retainsRegisteredObjects = false context B - main context, parent context - A. retainsRegisteredObjects = true context C - background private context. parent context - B. retainsRegisteredObjects = true

When I add new MO to coreData, it saved succesfully to all contexts , but, when I check registeredObjects of context B and C, objectID for new MO is temporary, this is problem for me, because I had some work with coreData from NotificationServiceExtension, and I use fetch persistent history to get updates that was made in NSE and apply them to main app, but, in fetch history I get changes for MO that have permanentID, but in my context B and C there is still temporaryID. It was strange for me, so, I set retainsRegisteredObjects to context A, after that, I noticed, that after save new MO to coreData, permanentID is set only in context A for that MO, in contexts B and C MO still have temporaryID, does it correct behaviour of coreData or it's bug? I expect that when I save MO to coreData, it will automatically update ID as permanent for MO in all context for this MO if it exist in registeredObjects of certain context

CoreData permanentID set only for root context of persistentCoordinator
 
 
Q