Intel to M4
I finally made the jump from an Intel MacBook Pro to an M4 MacBook Pro. I let Migration Assistant run overnight and woke up to what looked like a working setup. VS Code was there, my GitHub SSH keys made it over, and things generally looked the same. iCloud was showing the sync icon but I figured that would clear up. It did not. Days later it was still syncing. I'm not sure why.
I eventually sat down to work on this site and started running into problems.
The iTerm / oh-my-zsh Spiral
iTerm opened with a litany of complaints. Plugins weren't loading, commands weren't found. The issue was oh-my-zsh plugins and Homebrew packages that had migrated over but weren't built for Apple Silicon. They looked installed. They didn't work.
I started uninstalling and reinstalling things. By the time I was reinstalling Node for the second time I realized I'd made a terrible decision using Migration Assistant at all.
Starting Over
Here's what helped when removing everything and starting fresh:
VS Code
- Move VS Code to the trash.
- Delete
$HOME/Library/Application Support/Codeand~/.vscode. - Reinstall VS Code.
- Reinstall extensions. If any show up as already installed, start over.
Homebrew
I'd used Homebrew to install Node, asdf, Go, and other tools. I used brew uninstall to remove packages, then uninstalled Homebrew entirely and reinstalled it fresh. I also had to
clean out ~/.zshrc - plugin references and PATH entries pointing at things that no
longer existed.
Confirming the right architecture
This command was useful:
node -p "process.arch" It tells you whether you're running arm64 (native Apple Silicon) or x64 (Rosetta). If you're on an M-series Mac and seeing x64, something's wrong.
Would I use Migration Assistant again?
No. Not for a dev machine.