You have to force the issue– and migrate your existing data store to iCloud– by re-saving all of your data so that you’ll get transaction logs for it. If you create a managed object, add it to a managed object context, and it gets synced to another device, that instance gets inserted into a new managed object context on the remote device. Because while iCloud might be a little too helpful in getting your custom managed object subclasses, it has no way of knowing about your custom managed object context subclass.