title: CNContactStore executeSaveRequest failing with (CNErrorDomain error 2.)
body: <p>I'm trying to remove redundancy of URLs to my application. This works well, if a single contact has several URLs. But if there are linked contacts, typically save operation fails with the message
  "The operation couldn’t be completed. (CNErrorDomain error 2.)"</p>
  
  <p>Any advice how to work around this? Doesn't it work with unified contact? If remove of an URL should happen separately on individual non-unified items, is there a way to get those from unified one?</p>
  
  <p>Here is excerpt of the code:</p>
  
  <pre><code>CNSaveRequest *saveRequest = [[CNSaveRequest alloc] init];
  
  NSArray* keys = @[CNContactUrlAddressesKey];
  NSPredicate *predicate = [CNContact predicateForContactsWithIdentifiers:identifiers];
  NSError *error;
  NSArray &lt;CNContact *&gt; *contacts = [_contactStore unifiedContactsMatchingPredicate:predicate keysToFetch:keys error:&amp;error];
  
  for (CNContact *contact in contacts) {
   // here we'll collect non-ambigous URLs
    NSMutableArray&lt;CNLabeledValue&lt;NSString *&gt; *&gt; *copyOfURLs = [NSMutableArray array];
   // just a marker for the moment if a URL with specific prefix was already found
    NSString *baseURL = nil;
    for (CNLabeledValue&lt;NSString *&gt; *labeledValue in contact.urlAddresses) {
      NSString *url = labeledValue.value;
      if ([url hasPrefix:APP_IDENTITY_URL_SCHEME]) {
         if (baseURL == nil)
           baseURL = url;
         else
           continue;
       }
       [copyOfURLs addObject:labeledValue];
    }
    CNMutableContact *updatedContact = [contact mutableCopy];
    updatedContact.urlAddresses = copyOfURLs;
    [saveRequest updateContact:updatedContact];
  }
  NSError *saveError;
  if (![_contactStore executeSaveRequest:saveRequest error:&amp;saveError]) {
    NSLog(@"Saving error: %@", saveError.localizedDescription);
  }
  </code></pre>