My users started getting this error on production schema only, this happens when trying to create a subscription. I'm guessing this field is being used by CloudKit. Has this happened to anyone else ?
This is how I'm creating it.
[self createQuerySubscriptionWithRecordType:@"Alarm" predicate:[NSPredicate predicateWithValue:true] subscriptionID:@"AlarmSubsription" database:self.cloudContainer.privateCloudDat:returnBlock];
-(void)createQuerySubscriptionWithRecordType:(NSString *)recordType predicate:(NSPredicate *)predicate subscriptionID:(NSString *)subscriptionID database:(CKDatabase *)database returnBlock:(void(^)(CKSubscription *subscription, NSError *error))returnBlock{
CKSubscription *newSubscription = [[CKSubscription alloc]initWithRecordType:recordType predicate:predicate subscriptionID:subscriptionID options:(CKSubscriptionOptionsFiresOnRecordCreation | CKSubscriptionOptionsFiresOnRecordDeletion | CKSubscriptionOptionsFiresOnRecordUpdate)];
CKNotificationInfo *notificationInfo = [CKNotificationInfo new];
notificationInfo.shouldBadge = false;
notificationInfo.alertBody = @"";
notificationInfo.alertLocalizationKey = @"";
notificationInfo.shouldSendContentAvailable = true;
newSubscription.notificationInfo = notificationInfo;
CKModifySubscriptionsOperation *modifyOperation = [[CKModifySubscriptionsOperation alloc]initWithSubscriptionsToSave:@[newSubscription] subscriptionIDsToDelete:nil];
[modifyOperation setModifySubscriptionsCompletionBlock:^(NSArray *savedSubscriptions, NSArray *deletedSubscriptionsID, NSError *error) {
if (error) {
error = [CloudKitSync errorForKey:subscriptionID inPartialFailureError:error];
returnBlock(nil, error);
}
else{
NSAssert([savedSubscriptions containsObject:newSubscription], @"should contain freshly created subscription");
returnBlock(savedSubscriptions[0],nil);
}
}];
[database addOperation:modifyOperation];
}