(self asking and self-answering because I spent hours on the web looking for this, and most of the resources all say \"I solved it in the end\" without giving an explanation
I also had a similar problem and it came from calling a ProxyObject rather than the actual object from an array controller.
For example:
MYEntity *entity = EntityController.selection;
NSString *property = entity.property; // <--- causes the error
but
MYEntity *entity = EntityController.selectedObjects firstObject]; // <--- fixes the error
NSString *property = entity.property;