Contacts Framework CPU Loop (M1 Max / Exchange)

When syncing an Office 365 (Exchange) account on an M1 Max machine running the latest macOS (e.g., Sonoma), the native contactsd and AddressBookManager processes enter a severe, persistent failure loop. The CPU usage spikes from 0.0% to over 80% (observed at 81%) and repeats every 60-90 seconds. This occurs even when the account is entirely empty of contacts and after performing a clean macOS installation, strongly indicating a systemic bug in the framework's Exchange protocol handler on the M1 architecture.

System Information Affected Hardware: Apple M1 Max

Affected macOS Version: Tahoe 26.1

Affected Processes: contactsd, AddressBookManager

Account Type: Microsoft Exchange / Office 365

Steps to Reproduce System Setup: Perform a clean installation of macOS on the M1 Max machine (USB boot, NO Migration Assistant or data restoration).

Account Preparation: Ensure the target Exchange account's contacts folder is entirely empty on the server (via Outlook Web Access).

Trigger: Go to System Settings > Internet Accounts and add the Exchange account. Ensure ONLY Contacts is toggled ON.

Observation: Open Activity Monitor and sort by % CPU.

Expected Behavior The contactsd and AddressBookManager processes should spike briefly (under 5%) to establish the empty sync, then settle to a persistent idle state (0.0% to 0.5% CPU).

Actual Behavior The processes never settle:

CPU Spikes: Usage repeatedly jumps from 0.0% to 81% for AddressBookManager and 22-59% for contactsd.

Pattern: This extreme spike lasts for a few seconds before the thread crashes/restarts, and the process immediately re-initiates the loop, consuming massive CPU cycles continuously.

Diagnostic Proof The runaway CPU is not caused by corrupt data:

Data Neutralization: The account's contacts folder was emptied on the server, yet the high CPU loop persisted when syncing.

Clean System: The issue is reproducible on a clean, from-scratch macOS installation, ruling out corrupted user preferences or system files.

Cross-Architecture: The exact same account syncs perfectly on iOS and newer M4 Macs, confirming the data is valid and the issue is specific to the M1 Max's implementation of the Exchange protocol handler.

Workaround (For Visibility) To restore system performance, the user must DELETE the entire Exchange account from System Settings > Internet Accounts and use a third-party client (e.g., Outlook for Mac) for synchronization, as it bypasses the buggy native framework.

Contacts Framework CPU Loop (M1 Max / Exchange)
 
 
Q