Troubleshooting
Fixing Missing Contacts After Migration
Restore contacts missing after migration with concrete CardDAV export, vCard import, and address-book reconnect steps that work across Gmail, Office 365, and iCloud.
Priya Shah
Senior Systems Engineer
You completed the email migration, the user logged into the new mailbox, and their address book is empty. Or partially empty: half the contacts are there, the other half missing, with no obvious pattern. Or every contact has just a name and email but no phone number, no address, no notes. This is one of the most common surprises after an IMAP migration because IMAP simply does not carry contacts. They need their own export and import path, almost always through vCard. This post walks through the export, the import, the gotchas around groups and photos, and the mobile-client reconnect that catches most people out.
Heads up
Typical symptoms you will see reported by the user:
Contacts folder empty on new account
CardDAV: 401 Unauthorized when adding account on iPhone
Outlook autocomplete suggests no one I email regularly
Imported 1,847 contacts but I had 2,103
Why this happens
Two root causes account for almost every missing-contacts incident after a migration.
IMAP does not move contacts. The IMAP protocol is mail-only by design. Contacts live in CardDAV (used by Google, iCloud, Fastmail, and most open-source providers), Exchange Web Services, or Microsoft Graph. An IMAP migration tool does not see the contacts database at all. If your migration plan did not include a CardDAV or Graph step, the contacts were never copied, regardless of how clean the mail migration looked.
Skip the manual setup — let Mailbox Taxi handle it
One desktop app, every IMAP provider, zero data leaving your machine.
CardDAV and Graph require separate authentication. Even when source and destination are the same vendor, contacts use a different endpoint and a different OAuth2 scope. Google Workspace uses https://www.googleapis.com/auth/contacts at the People API, iCloud uses CardDAV at https://contacts.icloud.com, Office 365 uses Microsoft Graph at /me/contacts. A migration token that authorised mail does not automatically authorise contacts, and tools that do not request the right scope simply do not see the data.
vCard format mismatches between vendors. Even when the export and import both run, contact fields can be lost or mangled. Google exports phone numbers with type labels (Mobile, Home, Work); Office 365 imports those into its own type taxonomy and silently drops anything it does not recognise. Contact photos embedded as base64 in vCard 3.0 are sometimes stripped during conversion to vCard 4.0. Custom fields almost never survive a round-trip between vendors.
Fix it now
Confirm the contacts protocol on each side
Identify the contacts protocol on both sides. For Google Workspace it is the People API or CardDAV. For Office 365 it is Microsoft Graph. For iCloud and Fastmail it is CardDAV. Knowing the protocol determines whether you export to vCard (the universal lowest common denominator) or use a direct API-to-API migration that preserves more fields.
Export contacts as vCard
Use the source provider's export tool. In Google Contacts it is Settings, Export, then choose "vCard (for iOS Contacts)" for the broadest compatibility. In Office 365 Outlook Web it is People, Manage, Export contacts. In iCloud it is Contacts, select all (Cmd-A), then File, Export, Export vCard. Save the resulting VCF file locally and confirm the file size is plausible (a few hundred KB for 2,000 contacts is typical).
Import the VCF into the destination
Use the destination provider's Import Contacts option. Google Contacts accepts VCF directly via Settings, Import. Office 365 accepts VCF and CSV via People, Manage, Import contacts. Imports are not always deduplicated at the destination, so if you are re-running an import, first delete the partial contacts already present to avoid creating duplicates. The mechanics mirror what you do for duplicate email cleanup but on a smaller scale.
Re-create contact groups
vCard preserves group memberships unevenly. Google to Google preserves them well, Google to Office 365 typically loses them, iCloud to anywhere usually flattens them. Rebuild any critical contact groups (
Sales team,Family,Vendors) manually on the destination. List them up front from the source so you can compare side by side.Reconnect mobile contact clients
On every iPhone, iPad, and Android device, remove the old contacts account and add the new one. iOS in particular caches CardDAV credentials and will keep showing old contacts even after the source mailbox is deleted, until the account is fully removed from Settings, Accounts. After reconnecting, the destination address book populates within a few minutes. The calendar sync fix covers the equivalent step for calendars.
Validate contact counts and rich fields
Compare the destination contact count to the source count. Allow a small variance for system-level contacts the destination filters automatically. Spot-check 5 to 10 contacts for rich fields: phone numbers, addresses, photos, notes, custom fields. If photos are systematically missing, the export tool likely used vCard 4.0 while the destination expected 3.0, or vice versa. Re-export with the alternative format and re-import only the affected contacts. The post-migration validation playbook covers the full checklist.
How to prevent it next time
Plan contacts migration as a distinct workstream alongside mail and calendar. Even when one tool covers all three, treat each as its own job with its own scope, its own credentials, and its own validation step. The complete email migration guide includes a per-workstream checklist.
For Google-to-Google or Microsoft-to-Microsoft migrations, use the native API rather than vCard. The Google People API and Microsoft Graph preserve far more fields than vCard does, including custom labels and per-field types.
Take the contacts export at the same moment as the email cutover. If contacts are exported a week early, any address-book change the user makes in that intervening week will be lost. Most providers let you re-export quickly, so the right pattern is to export immediately before flipping the user's primary mailbox.
Document a one-page handoff for the user before they log into the new mailbox. Tell them what was migrated (mail, contacts, calendar), what was not (Outlook autocomplete cache, locally-stored signatures), and which devices need reconnecting. This is far cheaper than fielding the same support call ten times. The IMAP protocol glossary is a useful linked reference for users curious about why mail and contacts are separate.
Migrate your mailbox the easy way
Join the waitlist for early access and lock in launch pricing.
Related reading
troubleshooting
Fixing Calendar Sync Issues Post-Migration
Calendar not syncing after a migration? Fix CalDAV connections, rebuild meeting organisers, and restore invitations across Office 365, Google, and iCloud in minutes.
glossary
What Is IMAP? A Plain-English Definition
IMAP (Internet Message Access Protocol) is the standard that lets email clients read mail from a server. Here's what it does, how it differs from POP3, and why it matters for migrations.
blog
Email Migration Troubleshooting: The Complete Reference
Email migration troubleshooting reference covering auth, throttling, integrity, permissions, network and DNS — diagnostic order and safe retry strategies.
blog
The Complete Email Migration Guide for 2026
Plan, execute and validate an email migration without losing folders, flags, or sleep. A pillar guide that walks the full process end to end.
blog
Post-Migration Validation: The Checklist That Catches Real Problems
A post-migration validation checklist with message-count deltas, folder compares, calendar invites, mobile re-provisioning, and shared mailbox access checks.
Migrate your mailbox the easy way
Join the waitlist for early access and lock in launch pricing.