iCloud Drive Won't Sync on Mac

iCloud Drive on my Mac (10.13.3) won't sync.

  • My other devices perform perfectly, as does icloud.com. Any change made on one immediately propagates to the others.
  • Changes made to iCloud Drive on my Mac go nowhere. The cloud icon displays indefinitely. Changes aren't propagated to my other devices or iCloud.com, nor do changes made in other locations propagate to my Mac, which is lost in some orphan universe of its own.
  • All other services (i.e., Contacts, Calendar, etc.) perform perfectly.

So far I've tried…

  • Disabling/enabling iCloud Drive on all my devices.
  • Various combinations of disabling/enabling "Desktop & Documents Folders"
  • Signing out/in of iCloud on all my devices.
  • Restarting the Mac until the startup chime had me reciting Edgar Allan Poe's "The Bells."
  • Removing all files and experimenting with one small file.
  • Waiting eight hours for a 25kb startled cat photo to sync.

…all to no avail.

I've attached log entries matching…

message type:error
message type:fault
process:icloud

…below, but if there are obvious screaming errors in it, they're over my head.

I'm at wit's end. Suggestions would be most appreciated.

iCloudPreferences   error   15:45:50.464165 -0800   com.apple.preferences.icloud.remoteservice  [AOSAccounts] : ****###****-[MMMobileDocumentsService confirmUserWantsToDisableiCloudDriveAndDesktopWithDialogCompletion:] kMMPropertyMobileDocumentsiCloudDriveDisableDataclassActions  returned  (null)  uploadPending 1 downloadPending 1
iCloudPreferences   error   15:45:52.377211 -0800   com.apple.preferences.icloud.remoteservice  [AOSAccounts] :  -[MMMobileDocumentsService observeValueForKeyPath:ofObject:change:context:]: progressText got from iCloud Drive :()
iCloudPreferences   error   15:45:52.377322 -0800   com.apple.preferences.icloud.remoteservice  [AOSAccounts] :   ****###****     -[MMMobileDocumentsService observeValueForKeyPath:ofObject:change:context:]:                                                 0.0% [indeterminate]            (fractionCompleted)
iCloudPreferences   error   15:45:58.012621 -0800   com.apple.preferences.icloud.remoteservice  [AOSAccounts] : [-[MMMobileDocumentsService setEnabled:creating:withWindow:]_block_invoke_2] : showUploadDisableiCloudDriveSheetWithCompletionHandler completed with status 1
iCloudPreferences   error   15:45:58.015098 -0800   com.apple.preferences.icloud.remoteservice  [AOSAccounts] : [-[MMMobileDocumentsService uploadAndOptOutOfiCloudDriveWithCompletionHandler:]_block_invoke] : BRUploadAllFilesForLogOutOperation completed with error Error Domain=NSCocoaErrorDomain Code=3072 "The operation was cancelled."
iCloudPreferences   error   15:45:58.015652 -0800   com.apple.preferences.icloud.remoteservice  [AOSAccounts] : [-[MMMobileDocumentsService handleOperationCompletion:]] : BRUploadAllFilesForLogOutOperation  or BRDownloadAllFilesForLogOutOperation completed with error Error Domain=NSCocoaErrorDomain Code=3072 "The operation was cancelled."
iCloudPreferences   error   15:45:58.016112 -0800   com.apple.preferences.icloud.remoteservice  [AOSAccounts] : [-[MMMobileDocumentsService handleOperationCompletion:]] : BRUploadAllFilesForLogOutOperation  or BRDownloadAllFilesForLogOutOperation failed with error Error Domain=NSCocoaErrorDomain Code=3072 "The operation was cancelled."
iCloudPreferences   error   15:45:58.029026 -0800   com.apple.preferences.icloud.remoteservice  [AOSAccounts] : SetEnabledOnACAccount_block_invoke Dataclass Action sent to save account [email protected]  service com.apple.Dataclass.Ubiquity enableState 0 : {
    "com.apple.Dataclass.Ubiquity" = ACDataclassActionMergeLocalDataIntoSyncData;
}
iCloudPreferences   error   15:47:05.448533 -0800   com.apple.preferences.icloud.remoteservice  [AOSAccounts] :  [GetProperty]  kMMPropertyMobileDocumentsMigrationStatusKey status: <CFBasicHash 0x61000066b300 [0x7fff99f38980]>{type = mutable dict, count = 3,
entries =>
0 : status = SUCCEEDED
3 : id = <CFString 0x61000046d540 [0x7fff99f38980]>{contents = "edac53f1-93db-48ac-b9f3-2512550632a7"}
11 : name = <CFString 0x610000233440 [0x7fff99f38980]>{contents = "NOT_NEEDED"}
}

Solution 1:

I had the same problem. I tried restarting, new user profiles, signing in and out of iCloud, check and unchecking documents in the cloud etc.

Each time I waited several hours, but my iCloud documents did not appear.

What finally worked was Dwight McKay's suggestion:

In the Mac Terminal program (in the Utilities folder), type:

killall bird
cd ~/Library/Application\ Support
mv CloudDocs CloudDocsOld

NOTE: the original instructions required deleting CloudDocs (rm -rf CloudDocs instead of mv). An edit was suggested to move rather than delete the folder, but this has not been tested. If you can confirm that this still works, please leave a comment and I'll remove this note.

If everything goes well, then you can delete the CloudDocsOld folder afterwards in Terminal:

cd ~/Library/Application\ Support
rm -rf CloudDocsOld

If something goes wrong you can recover the CloudDocsOld folder:

cd ~/Library/Application\ Support
rm -rf CloudDocs
mv CloudDocsOld CloudDocs

cd = change directory to...
rm = remove
-rf = recursive & force deletion of read-only files
mv = move and rename A to B


I had to wait about an hour for file names to show up, and of course the actual files are still in the cloud.

It is too technical for me but you can paste the following line into the Terminal to follow sync progress

brctl log -w

It took about 4 hours to go through 300 gb. brctl stopped output when it was done. If everything worked, you can then delete the CloudDocsOld folder from ~/Library/Application\ Support.

You can find more information at Dwight's page:

  • bird is the daemon that syncs iCloud documents

  • ~/Library/Application Support/CloudDocs contains the iCloud meta-data store

Solution 2:

After months dealing with this issue I finally have a fix that makes sense. It's possible to create filenames with emojis on an iOS device that iCloud Drive on Mac doesn't know how to handle. If iCloud Drive is syncing across your iOS devices but not macs, try this:

On an iOS device, rename or delete suspicious filenames to remove emojis and weird unicode characters.

In my case I went nuclear and tried to delete them all from my iPad (after backing them up by copying them to On My iPad). Here's the problem with that, they're still in Recently Deleted and Macs still don't like it. You need to navigate to Locations -> Recently Deleted and tap Select and then Delete All at the bottom.

Afterwards do the sacred ritual we've all done tens of times:

  • Disable iCloud Drive in Preferences -> iCloud
  • In a terminal killall bird; rm -rf ~/Library/Application\ Support/CloudDocs; rm -rf ~/Library/Caches/com.apple.bird
  • Reboot the computer
  • Enable iCloud Drive in Preferences
  • Cry real tears of joy

Solution 3:

I wrote a script. Uses sudo... so use CAUTION!

#!/bin/bash

if [[ $EUID -eq 0 ]]; then
    echo "Killing bird."
    killall bird
    echo "Removing CloudDocs"
    cd ~/Library/Application\ Support
    rm -rf CloudDocs
    echo "Immediately rebooting!"
    shutdown -r now
else
    echo "
    This script needs run as sudo. 
    Use CAUTION when doing so.
    You accept full responsibility using this script.
    You should know what it's doing BEFORE you run it.
    "
fi

Restarts automatically immediately after.

Solution 4:

Thank you. My solution proved a bit different, and as I don't fully understand it, I didn't post it.

My problem related to the system in question's multiple network interfaces - specifically, two active ethernet connections. A combination of deleting/recreating the interfaces and the update to macOS 10.13.2 left iCloud functioning correctly, but as I said, I don't really know why. I'm only clear that some problem with multiple network connections was at the root of it.