ABMultiValueCopyLabelAtIndex devuelve nulo, pero la label está visible en la libreta de direcciones

Estoy intentando leer la label de un service particular de posts instantáneos en la libreta de direcciones. En este caso, estoy probando con el service Facebook Messenger en mi teléfono. El contacto tiene contactos vinculados, pero solo un service de posts instantáneos registrado.

Traté de encontrar información sobre cómo funciona ABMultiValueCopyLabelAtIndex , pero todo lo que encontré fue que "puede devolver null". Si no hay una label visible en la libreta de direcciones, entonces sí, entiendo por qué devolvería nulo. En este caso, sin embargo, hay una label y lee "Facebook Messenger" en la vista de persona. Todavía sigo nulo, ¿por qué?

 - (BOOL)personViewController:(ABPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)personRecord property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifierForValue { // all IM services: ABMultiValueRef instantMessageProperty = ABRecordCopyValue(personRecord, property); // one particular IM service: CFDictionaryRef instantMessageDict = ABMultiValueCopyValueAtIndex(instantMessageProperty, ABMultiValueGetIndexForIdentifier(instantMessageProperty, identifierForValue)); // its name: NSString *serviceName = (__bridge NSString*)CFDictionaryGetValue(instantMessageDict, kABPersonInstantMessageServiceKey); // its label: NSString *serviceLabel = (__bridge_transfer NSString*)ABMultiValueCopyLabelAtIndex(instantMessageProperty, ABMultiValueGetIndexForIdentifier(instantMessageProperty, identifierForValue)); NSLog(serviceName); // logs "Facebook", so things seem to work NSLog(serviceLabel); // logs nothing, and I confirmed that serviceLabel == nil [...] }