Red circle with a line through it over Migration Assistant icon

Migration Assistant is a Disaster – Time for a Nuke & Pave

Why I Used Migration Assistant for the First Time

If you have been following along with our home game for a long time, you know I’m a huge proponent of doing a Nuke and Pave to your Mac when getting a new computer. A nuke and pave means a full reinstall of macOS followed by a reinstall of every application from a fresh download, and reconfiguring by hand. Only data is dragged back to the drive.

Doing a nuke and pave is an awful lot of work, but my experiences in the last few weeks have cemented my belief that it’s a good idea.

Let me give a refresher on why this topic is yet again at the forefront of my mind. I bought a new 14” M1 MacBook Pro in November when they came out. I didn’t use Migration Assistant 9 months ago; I installed all apps from scratch and dragged my data over.

I’ve documented my process for nuking and paving, most recently in my blog post from February 2021 entitled Nuke and Pave 2021 – All New Enhancements!

My new Mac ran clean and snappy and had no fiddliness after a good week of work getting everything the way I wanted it. I do a lot of customization of my OS and tools, so my iThoughts mind map which documents the mission-critical, important, and less important apps and settings is a lifesaver.

Everything was dandy till a few months ago when I started to notice some problems. My battery wasn’t lasting as long as it did when I first got the laptop. Long battery life is one of the great joys of the Apple Silicon chips so it was noticeable when it started to diminish.

Spotlight is a Misery

The second problem was that Spotlight kept reindexing my drive. At first, I thought that was the cause of the reduced battery life since indexing takes a lot of power when the Mac would otherwise be idling. But reindexing wasn’t the only problem with Spotlight.

While Spotlight was indexing my drive, it worked just fine as an app launcher, but when it finished indexing, it couldn’t find any Apple apps. Oddly it could find third-party apps. In addition to not being able to find the Apple apps, it couldn’t search with Apple apps. I couldn’t search inside Calendar or Mail, and I happened to open System Information to look at my list of installed Applications and there were no apps listed at all. Eventually, it would start indexing again and search would work, but the next time it finished it would be broken again.

Apple has a handy dandy support article on how to rebuild the Spotlight index. The trick is to open System Preferences / Spotlight to the Privacy tab. This is where you can add any folders you don’t want Spotlight to index. To stop and start indexing, drag your entire drive into that Privacy tab, quit System Preferences, open it up again and drag your drive back out.

Restart Spotlight Indexing with System Preferences
Restart Spotlight Indexing with System Preferences

But that didn’t fix the problem.

There’s a terminal command called mdutil that’s supposed to fix the same kinds of issues. If you add the -E flag to the command, it will cause each local store for the volumes indicated to be erased to be rebuilt if appropriate. By throwing a final \ to the end of the command, you tell mdutil to do it to the entire drive.

But that didn’t fix the problem.

I enlisted my good friend and Apple Certified Consultant Pat Dengler to help me, and she used her “phone a friend” option to contact Scott, who suggested a command called lsregister. lsregister doesn’t have a manual page, but the great Howard Oakley from Eclectic Light explained the command in detail at eclecticlight.co/…

I’m going to pop the command into the shownotes that I got from Scott, but I’m not going to make any attempt to explain it!

sudo /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -seed -lint -r -f -v -dump -domain local -domain system -domain user -domain network

And of course, that didn’t work either.

I tried Spotlight in a clean user account, and the exact same problems occurred with Spotlight. Curiously, my ScreenCastsOnline account, which is highly tailored, never experienced these problems.

After more than a month of fighting with this Spotlight problem, I cried “Uncle!” and called AppleCare. My new friend Solomon worked on the problem with me for hours and hours over the course of a few weeks, and while we didn’t solve the Spotlight problem, he did get approval to replace the battery. Normally you can’t get a new battery under warranty until the full-charge capacity goes below 90%, but mine had dropped to 94% in such a short amount of time that he fought for me and won.

And Then Apple Wiped My Drive

When I got the Mac back from AppleCare, for the first time ever, I decided to recover all of my data, applications, and settings using Migration Assistant. I will never do this again.

To start with, my Spotlight problems came right back with Migration Assistant, and now I’ve spent even more time with my friend Solomon. Engineering has come up with seemingly intelligent things for me to do, such as uninstalling 7 Applications that use the mdimporter plugin for Spotlight (4 of which were mission-critical apps), but that didn’t fix the problem.

Then they had me send them several Spotlight log files from Activity Monitor, and after that they sent me giant list of files buried inside my User Library that they suggested I temporarily delete. I might have been able to delete them but putting them back would have been the hard part. I might have gone to all of this work, if it weren’t for all of the other problems I’m having since using Migration Assistant.

Doing a nuke and pave is a lot of work, but it’s predictable work. My experience with Migration Assistant is that it’s a lot of work but you don’t know when you’re suddenly going to be hit with that work or sometimes even how to fix the problems it presents. Let me give you an assortment of some of the issues that have popped up.

Backblaze Problems

After the drive was wiped, Backblaze lost the connection to my backup. This meant I had to “adopt” my previous backup. Either through a software failure or more likely due to user error, I ended up adopting Steve’s backup, so I had to delete both of them and start over for both of us. I lost some vital information when I did this that would have been handy later.

Touch ID

Each user account had to have Touch ID set up again .

Startup Items

Several of my startup items in my user accounts got lost so I’d try to use an app like CleanShot X and nothing would happen. I had to stop what I was working on to go fix it. Even Bartender didn’t start at login.

1Password

1Password’s Safari extension broke in an annoying way. Command-tabbing to Safari would briefly bring Safari to the foreground but then it would flip to 1Password instead, which I would only notice if I looked at the menu bar.

This meant uninstalling 1Password completely. And uninstalling 1Password means quitting 1Password first, which is non-trivial as there’s a secret keystroke you must invoke in order to fully quit the app. That meant opening Keep It to find the secret keystroke where I’d saved it in a note. Only then could I toodle off to the Mac App Store to download 1Password.

Oh wait, the App Store gave me 1Password 7, not 8. Grrr. Quit again, uninstall again, find the link to the download at 1password.com and reinstall. Now, wait, what was I trying to do in Safari?

Dropbox

Dropbox Asking to Delete Files
Dropbox Asking to Delete Files

I use a WordPress plugin called UpDraft Plus that downloads a backup of my website to Dropbox once a week. It also monitors Dropbox and deletes older backups automatically. But after Migration Assistant, every single time UpDraft Plus wants to delete a file, I get a popup asking me if it’s ok to “delete for everyone”. I get about a half dozen of these notifications one after another and I don’t know how to make them stop.

Finder Extensions

Here’s a fun one. Upon boot up, System Preferences opens to Extensions / Finder Extensions. Every. Time. And sometimes on wake from Sleep. What the heck is causing that?

Hidden Files in Finder

On a Mac, you have tons of hidden files, affectionately referred to as dot files because their names start with a period. You can see them at any time in the Finder by holding down command-shift-. and to make them disappear again you hit the same keystroke.

While that’s cool, I don’t want to see my hidden files. After Migration Assistant, upon boot up, Finder always showed me hidden files. I could disable their visibility, reboot, and they’d be visible again. I lived with this for weeks before I finally went hunting for a way to make it stop.

I found an Apple discussion in which leroydouglas suggested that the Finder plist (~/Library/Preferences/com.apple.finder.plist) might be corrupted. I deleted that plist file and it fixed the problem. But why did Migration Assistant corrupt this plist? It was fine when I created the backup.

Permission on Second Volume

I have a separate volume on my Mac for my ScreenCastsOnline work. I had previously set the permissions so that my main allison user account could read and write to it along with my ScreenCastsOnline user account. I did that by creating a group in System Preferences / Users & Groups that has both my allison and ScreenCastsOnline user accounts in it. I then gave the volume permissions recursively to everything inside that group. The existence of this group was not maintained by Migration Assistant, requiring me to recreate it. Again, my workflow was entirely interrupted by this unpredictable behavior.

Combined Group Permissions in System Preferences
Combined Group Permissions in System Preferences

Can’t Connect to NAS over SMB

We all remember how hard I worked to be able to connect to my Synology network attached storage automatically for my Hazel scripts to work, right? After Migration Assistant transferred over all my files and settings, I can no longer use Go… / Connect to Server to connect to my Synology over SMB. That means my Keyboard Maestro macro won’t work because it uses that command. I verified that the identical command on my Mac mini works just fine, and it works for Steve on his Mac Studio, so there’s nothing wrong with the Synology or the network. I have no idea how to make SMB connections work again.

On a related note, Steve and I often connect to each other’s Macs over our local network to drop files to each other. The other day Steve opened a Finder window, scrolled in the left sidebar to Locations, and saw “Al Max” in the sidebar. Great. When he selected it, he could see the top level, so he selected the allison user account, which revealed the expected folders such as Applications, Desktop, and Documents.

I had already created a folder on my Desktop into which he was going to drop the files. He selected Desktop, and it said I had zero items on my Desktop. That is a lie; I currently have 12 files and folders on my Desktop. When he selected my Applications folder, it revealed to him all of my apps, but my Documents folder was as empty as my Desktop when he tried to view the contents. Every other folder we checked revealed the actual contents. The only thing that Desktop and Documents have in common is that I’m syncing them to iCloud.

I have to add this to the long list of, “I have no idea how to fix this” caused by Migration Assistant.

The Doozy – Did Neutrinos Change Permissions of One File?

I’ve saved my favorite problem for last. This one is a doozy. While I’m proud of myself for cracking the code to fix the problem, it was the final straw that convinced me that I need to do a nuke and pave. I simply cannot have my workflow constantly interrupted by these crazy side effects of using Migration Assistant. Here’s the doozy.

I use the app Hindenburg to record the podcasts. Hindenburg allows you to pull in audio clips as Favorites and shows them in a list inside the app. The jingles you hear throughout the show are all Favorites. Last week when I was going to record my Tiny Mac Tips segment, I tried to drag in the Tiny Tips jingle, but I got an error. I tested a couple of other Favorites, like the intro and outtro music and they all worked just fine. It was only the Tiny Tips jingle that wouldn’t work.

I was disconcerted by this, but I knew that I also have a copy of the jingle in Keep It. But get this – in Keep It, the file showed that it was 0 seconds long and could not play the file!

I needed to keep going with the show, so I just didn’t use a jingle at all, deciding to diagnose the problem later. When I had time to investigate, I took a closer look at what was happening and realized Hindenburg was giving me a permissions error.

Hindenburg keeps Favorites in:

~/Library/Application Support/Hindenburg/Favorites 

Permissions Say Fetching on Tiny Tips Jingle
Permissions Say Fetching on Tiny Tips Jingle

I first looked at the Tiny Tips jingle in that folder via the Finder and did a Get Info on it to view the permissions. But instead of showing me the name of the owner of the file, it had a spinning cog wheel and the word “Fetching…” next to it.

In all my many years using a Mac, I have never seen this before.

It was time to get serious and use the Terminal to look under the hood at permissions. I navigated to the Favorites directory and discovered that every single jingle had allison as the owner except for the Tiny Tips jingle. That one file was owned by user ID 504.

Tiny Tips Jingle Incorrect Permissions in Terminal
Tiny Tips Jingle Incorrect Permissions in Terminal

You may not realize this, but every user account has a unique ID. If you unlock Users & Groups in System Preferences, you can right-click on any user name and you’ll see Advanced Options. From there you can see the User ID for that user.

Advanced User Options Show User ID
Advanced User Options Show User ID

I inspected every single one of the accounts on my Mac and none of them had a user ID of 504! This explains why Get Info was never able to figure out who owned that file because it was a non-existent account!

I fixed the problem by changing the owner to allison from the command line with:

sudo chown allison Tiny\ Tip\ WalkingTall_Marimba_10.wav

But the real question is why did Migration Assistant munge that one file by assigning permissions to a user ID that did not exist???

Bottom Line

The bottom line is that I was delighted that Migration Assistant moved my massive 985GB Photos Library over to the nuked Mac and did NOT require me to wait for it to check every image and video to see if it was in iCloud. But that was the absolute end to the joy.

I feel like my Mac is a minefield of disasters waiting for me at every turn. I complained about Migration Assistant in the Podfeet Slack (podfeet.com/slack) and Jim responded. He wrote:

Used migration assistant back in Jan 2021 when I got my 27 inch 2020 iMac. Worked well no issues. Had a lot of third party software as well as Apple software. Oh I did have to tell Microsoft about my Home and student 1 machine stand-alone office, deleting,the old machine, but that isn’t Apple’s problem.

I’m real happy for Jim. Truly. I’m not jealous or bitter at all.

I’ve got some open time next week, so stay tuned for episode #2493 of the long-running series, “Allison Does a Nuke and Pave”.

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top