It happens to me because the parents are set up with NSMainQueueConcurencyType
To solve that I make the managedobjectcontext for mainQueue to be a child. I called reset everytime I want to load stuff to ensure that data on mainQueue is the same with the parent. It often isn't.