Old Man Yells at Cloud

Hinted at earlier this week and made official today, MacOS 12.3 will be dropping support for the kernel extension used by cloud storage providers like Dropbox and Microsoft OneDrive. They will instead be required to use Apple’s File Provider extension, originally created for iOS’ Files app and integrated into MacOS since Catalina. It is a change that Apple has been hinting at for about a year.

The only third-party cloud storage provider I use is OneDrive, which I have to use for work, so I was hopeful this framework would help Microsoft improve the performance of its sync client without requiring too much adaptation on my part.

I was exactly wrong.

My desktop OneDrive client updated itself to the newest build this morning and the changes are manifold:

  • Instead of a folder in my Home directory, OneDrive now appears under the “Locations” section in Finder like a networked drive might, though it cannot be ejected.

  • The first run experience is extremely slow. It took about an hour to reconcile the local contents of my OneDrive with remote copies. It did not seem to be downloading or uploading files, only checking their validity and status, but it was not quick. Even several hours later, opening any folder for the first time takes many seconds to load.

  • Every application I use to work with files in my OneDrive now needs to be authorized to do so, which is wild. It only happens one time for each application, but it was utterly bizarre to see a permissions request after opening a Sketch document for the first time: of course I want Sketch to be able to work with files in OneDrive because that is exactly what I just asked it to do.

    When I was in elementary school, we had to raise our hands and ask to go to the bathroom. By the time I got to high school, we could just walk out of class and come back because everyone has to pee sometimes. I know it is just the first run experience for each application, but this is like being back in elementary school again.

  • Backblaze saw the new OneDrive directory as a “drive” and started to back it up. This may be helpful to some people, but I do not want to create a personal backup of my employer’s files. I excluded the OneDrive directory from Backblaze, but about an hour later, I saw the bztransmit process creeping up the list in Activity Monitor. Turns out it is necessary to also exclude ~/Library/Group Containers/UBF8T346G9.OneDriveStandaloneSuite, which I am documenting for future searchers.

These are changes that interrupt users’ workflow and move files around without explicit permission — and they are delivered in an automatic update. To its credit, Microsoft attempted to soften these issues by communicating what was different before widely rolling out the update, and it created a same-named symlink in the user’s Home folder so linked files should continue to work correctly.

It is also hard to blame this change on Microsoft. Sure, it could have made this change earlier, but there is no incremental process for each user. If Microsoft had released this update a year ago, I would have still had the same issues. It is also hard to fault Microsoft for making a potentially breaking change any earlier than required.

Similarly, I can imagine Apple has good reasons for requiring the use of its File Provider extension instead of legacy kernel extensions. Apple says that the latter “risk the integrity and reliability of the operating system” and “recommends users select solutions that don’t require extending the kernel”; presumably, it also recommends developers avoid distributing kernel extending software, too. It also appears to make fuller use of APFS features.

It is the combination of these changes, delivered through automatic software updates, that compelled me to write about this in more detail. Much of the software I use is now delivered through a service-based model, where I have no control over which version I am using. There are clear benefits, like reduced version incompatibility and guaranteed security fixes, but it comes at the cost of user control. Sometimes, that means my workflow will get interrupted by a change I did not explicitly request, and that will mean spending a great deal of time adjusting. If it were only in one or two applications — and only sometimes — this would bug me less, but it is the new standard, and I am increasingly frustrated by it.

The new version of OneDrive no longer has a global preference for retaining a local copy of all files. Deleting a file now makes it vanish entirely after confirming this action — the file is no longer moved into MacOS’ Trash, nor is it in the OneDrive Recycle Bin on the web. It is simply gone. I do not know if these are choices Microsoft made or if they are side effects of the File Provider transition, but they are regressions nevertheless, and appear to only affect the MacOS client. And, as a user, I have virtually no control over these changes. It is no longer limited to specific software or specific vendors — updates that are interruptive are now everywhere. It makes using the tools for my job a never-ending process of relearning with few rewards.

Also, as a slap in the face, the OneDrive for Mac client still sometimes idles at 90% CPU consumption, and records around 200% while syncing some files. Neither MacOS nor OneDrive is a beta version, yet everything I use seems to behave as though I am testing it. Nothing seems to carry a seal of quality or any kind of guarantee. I sure wish software vendors — particularly the biggest companies in the industry — would stand behind their software products like they do their hardware.