Bug Fix

Fixed contact sync creating duplicate people on every run

What We Fixed

Some synced contacts — especially business contacts with an organization/title
and a phone number too short or unusual to save (vanity numbers, extensions) —
were being re-created as a brand-new contact on every sync run instead of being
recognized as the same contact. Over time this produced many duplicate
contacts for the same person.

The sync record that keeps a contact from being re-created was only written
after some optional enrichment steps (like stamping the organization as a
bio). If any of those steps failed, the sync record never got saved, so the
next run had no way to recognize the contact and created a new one instead.

  • The sync record is now written immediately once a contact is matched or
    created, before any optional enrichment — so a failure enriching a contact
    can no longer cause it to be duplicated on the next run.
  • Apple (iCloud) contacts whose phone numbers, emails, or addresses use
    Apple’s grouped vCard format (common when a contact has a custom label,
    like “iPhone” or “Assistant”) are now parsed correctly instead of being
    silently dropped.
  • Sync failures affecting multiple contacts in a single run are now reported
    together so they’re easier to notice and investigate.
  • Deleting a synced contact now keeps it deleted instead of having it
    recreated on the next sync run. (A per-configuration option to re-import
    deleted contacts instead is planned as a follow-up for teams that want the
    old behavior back deliberately.)
  • Business contacts whose whole name — like a company name — was entered as
    a single field (first name only, or last name only) no longer render with
    a doubled last name (e.g. “Ballard Designs Designs”).