How to Fix ‘Callservicesd High CPU Usage’ on Mac

Noticing your Mac running hot, battery levels depleting rapidly, and Activity Monitor displaying the background process callservicesd pegging the CPU at 100% or more indicates a runaway telephony daemon. In the macOS architecture, callservicesd is the central CoreTelephony and CallKit background daemon responsible for coordinating phone calls, FaceTime audio/video connections, and iPhone Cellular Calls (Continuity Call Relay) across Apple devices sharing the same Apple ID. When iCloud call history databases become corrupted, FaceTime authentication tokens desynchronise, or Bluetooth Continuity handshakes enter an infinite retry loop, callservicesd exhausts CPU cycles. Follow this structured guide to resolve callservicesd CPU spikes on macOS.

What Causes callservicesd to Spike CPU Usage?

The call services daemon should consume virtually 0% CPU when no active call is underway. The primary factors triggering CPU runaway include:

  • Corrupted Call History Database: Damaged SQLite databases stored in ~/Library/Application Support/CallHistoryDB/ causing the daemon to enter an infinite indexing loop.
  • FaceTime and iCloud Call Relay Desynchronisation: iPhone Cellular Calls continuity handshakes failing to reconcile call logs between your iPhone and Mac.
  • Stale Bluetooth Proximity Tokens: macOS continuously querying nearby devices for Continuity availability over Bluetooth Low Energy.
  • Corrupted Telephony Property Lists: Damaged preferences in ~/Library/Preferences/com.apple.telephonyutilities.plist.

Method 1: Force Quit callservicesd in Activity Monitor

Terminating the hung process allows launchd to restart it immediately in a fresh, unblocked state.

  1. Press Command + Space, type Activity Monitor, and press Return.
  2. In the search box in the top-right corner, type callservicesd.
  3. Click on the callservicesd process to select it.
  4. Click the Stop (X) button in the top toolbar.
  5. Select Force Quit.
  6. The daemon will relaunch automatically. Check if CPU usage normalises below 1%.

Method 2: Toggle iPhone Cellular Calls (Continuity) Off and On

Resetting the Continuity Call Relay bridge resolves communication deadlocks between macOS and iOS.

  1. Open the FaceTime app on your Mac.
  2. Click FaceTime in the top menu bar and select Settings (or Preferences).
  3. In the General tab, locate the checkbox for Calls from iPhone.
  4. Uncheck the box to disable cellular continuity.
  5. On your iPhone, navigate to Settings > Phone > Calls on Other Devices and toggle your Mac off.
  6. Restart both your Mac and iPhone.
  7. Re-enable the settings on both devices to establish a fresh cryptographic pairing.

Method 3: Clear the Corrupted Call History Database

Deleting corrupted local call history files forces macOS to generate a fresh SQLite database cleanly.

  1. Quit FaceTime completely (Command + Q).
  2. Open Finder. Click the Go menu at the top and select Go to Folder….
  3. Enter the following path and press Return:
    ~/Library/Application Support/CallHistoryDB
  4. Locate the files named CallHistory.storedata, CallHistory.storedata-shm, and CallHistory.storedata-wal.
  5. Move these files to the Trash.
  6. Open Terminal and kill the call services daemon so it immediately creates a new database:
    killall callservicesd
  7. CPU usage will immediately drop to zero as the database initialises.

Method 4: Sign Out and Re-authenticate with FaceTime

If your account token became corrupted, renewing your session re-establishes a clean authentication handshake.

  1. In FaceTime, open Settings.
  2. Next to your Apple ID, click Sign Out.
  3. Restart your Mac.
  4. Open FaceTime and sign back in with your Apple Account credentials.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.