# Fix Missing iMessage History on a Connected Mac

Canonical: https://figment.so/blog/imessage-history-not-syncing

iMessage history appears incomplete or absent on a Mac for several distinct reasons that call for different fixes. This guide walks you through each one and helps you rule out the right culprit first — starting with the Messages app itself, since Figment's Mac worker reads from whatever Messages has already synced locally.

## Get Messages.app syncing before checking a connector

Mac-local message data is the outer boundary of what the API can return; API grant scope and pagination are separate constraints. Three things must be in place before Messages in iCloud works reliably on a Mac.

**Two-factor authentication.** Messages in iCloud requires 2FA on the Apple Account. Confirm it at [appleid.apple.com](https://appleid.apple.com) under **Sign-In and Security → Two-Factor Authentication**.

**iCloud Keychain.** iCloud Keychain is required for Messages in iCloud (see [Apple's setup guide](https://support.apple.com/guide/icloud/set-up-messages-mm0de0d4528d/icloud)). On macOS Ventura or later, find the Keychain option under **System Settings → [your name] → iCloud** (the exact label varies by OS release). On earlier macOS: **System Preferences → Apple ID → iCloud → Keychain**.

**Messages in iCloud toggle.** Each device has its own switch. On the Mac, open **Messages → Settings → iMessage** and check **Enable Messages in iCloud**, then click **Sync Now**. Initial sync can take time depending on message volume; you can send and receive while it runs.

Enable the same toggle on iPhone:
- **iOS 17.2 or later:** Settings → [your name] → iCloud → See All → Messages in iCloud → Use on this iPhone
- **iOS 16–17.1:** Settings → [your name] → iCloud → Show All → Messages → Sync this iPhone

The Apple Account shown in **Messages → Settings → iMessage** on the Mac must match the one in **Settings** on the iPhone. A mismatch can cause the Mac to show only messages that arrived after the most recent sign-in.

## SMS, MMS, and RCS messages

When Messages in iCloud is enabled, it includes iMessage, SMS, MMS, and RCS — a separate Text Message Forwarding switch is not always required. New SMS, MMS, and RCS traffic requires an iPhone that is on, connected, and able to send and receive. Already-synced carrier messages remain accessible on the Mac even if the iPhone is temporarily offline. ([Apple Support HT102545](https://support.apple.com/en-us/102545))

If you do enable Text Message Forwarding separately, go to **Settings → Apps → Messages → Text Message Forwarding** on the iPhone and toggle on each target device. A verification code appears on the target device only if that device does not use two-factor authentication; enter it if prompted.

## Sync diagnostic tree

Walk from top to bottom. Resolve the first "No" before continuing — each step depends on the ones above it. No step in this tree deletes messages.

```
Is Messages signed into your Apple Account on this Mac?
└─ No  → Messages > Settings > iMessage, sign in
└─ Yes ↓

Is two-factor authentication active on this account?
└─ No  → Enable at appleid.apple.com > Sign-In and Security
└─ Yes ↓

Is iCloud Keychain turned on?
└─ No  → System Settings > [your name] > iCloud (find Keychain; label varies by OS)
└─ Yes ↓

Is "Enable Messages in iCloud" checked on this Mac?
└─ No  → Messages > Settings > iMessage > check it, then Sync Now
└─ Yes ↓

Is Messages in iCloud also enabled on iPhone with the same Apple Account?
└─ No  → Follow the iPhone steps above for your iOS version
└─ Yes ↓

Is iCloud storage full?
└─ Yes → Free space or upgrade at icloud.com/settings; sync stalls when full
└─ No  ↓

Is history appearing in Messages now?
└─ Yes → Done. Using a Figment connection? Check connector status below.
└─ No  → See "Gaps that settings may not reach" below.
```

## Figment connector status

With Messages in iCloud configured, verify that the Figment connector is also ready before treating an empty API result as a confirmed absence. Connection and service status are visible at [/apple-connect/account](/apple-connect/account). You can also query the connection directly:

```http
GET https://figment.so/api/apple-connect/v1/connections/con_...
Authorization: Bearer ACCESS_TOKEN
```

A successful response has the shape `{connection:{id,mode,services,...}}`. Each service is an object; check `connection.services.messages.state`. The endpoint may return a non-2xx response for a revoked or non-ready connection rather than a state object — treat any non-2xx as a prompt to check the account page.

A `ready` state means the connector is active, not that all available iCloud history has arrived on this Mac. The `messages:read` scope covers both history and search; search scans locally available history, so messages that never reached this Mac are outside its reach. When reading history or searching, check both `hasMore` and `historyComplete` before drawing conclusions about coverage.

If `"mode":"sandbox"` appears in the response, the data is synthetic and cannot reflect real missing history — a live connection is required for real reads.

## Gaps that settings may not reach

**Full iCloud storage.** When the account is at capacity, incoming messages stop syncing. Free up space at [icloud.com/settings](https://www.icloud.com/settings), then click **Sync Now** in Messages.

**Recently deleted messages.** Deletions sync across all enrolled devices. If a message was deleted recently, check **View → Recently Deleted** in the Mac Messages app — items there are recoverable for up to 30 days; Apple states that deleted messages are permanently removed from iCloud after 40 days. ([Apple Support](https://support.apple.com/guide/messages/delete-messages-and-conversations-icht1035/mac))

**Gaps from interrupted sync.** If Messages in iCloud was off or storage was full for a period, some messages from that window may not be in iCloud. Re-enabling sync and clicking **Sync Now** is the first step; messages still present on a connected device may sync back. For gaps that persist after all settings are confirmed, the originating device is the most direct place to look.

---

The developer plan is $29/month per active live connection; sandbox is free and access starts after setup. [Connect Apple Account](/apple-connect/developers) to get started.
