MacOS Catalina (v10.15) and newer versions only support 64-bit applications. Additionally, Apple has recently transitioned Macs from Intel’s x86-64 processors to ARM64 architecture.
So, if you’re on an older Mac sporting an Intel chip or you’re trying to run a program coded for the wrong architecture, you’ll face the Bad CPU Type in Executable error.
You can usually solve this error by using the 64-bit version of the program and additionally installing Rosetta if necessary. We’ve detailed these and more solutions in the article below.
What causes the Bad CPU Type in Executable Error?
How to Fix Bad CPU Type in Executable
Since 32-bit code or incompatible architecture is no longer acceptable on v10.15 and later, developers should update the source accordingly. As a consumer, you can try some of the solutions we’ve listed below.
Use 64-bit Build
Whether it’s an application or a CLI tool that you’re encountering this error on, the easiest way to resolve it is to use a version compiled for ARM64 architecture.
Sometimes, even after installing the 64-bit version of the program, you may still face this error. In such cases, there are likely additional issues that you can resolve with the solutions listed below.
Set Zsh as Default Shell
Zsh (Z shell) is supposed to be the default login and interactive shell in macOS Catalina and later versions. But sometimes, this may not be the case due to unintentional changes, which can ultimately lead to issues like the Bad CPU Type in Executable error. So, you can set Zsh as the default shell with the following steps:
- Click on the Apple Menu and select System Preferences > Users & Groups.
- Press the lock and input your account credentials.
- From the user list on the left pane, control-click your user name and select Advanced Options.
- Select Zsh from the Login shell menu and press OK to apply the changes.
Install Rosetta 2
You may be aware of the Mac transition to Apple silicon that Tim Cook announced in June 2020. Macs used Intel processors for almost 15 years before recently switching to Apple-designed ARM64 CPUs. Many programs designed to run on Intel processors haven’t yet been revised for the new silicon chips.
Apple understands this, which is why Rosetta, a dynamic binary translator, was reintroduced as Rosetta 2 in macOS Big Sur. The first time you try to run an incompatible program, you will automatically be prompted to install Rosetta 2. Here, you can press Install and input your account credentials to fix the issue. But this is via the GUI.
The Terminal doesn’t automatically detect that Rosetta is missing. As such, if you attempt to execute an incompatible program via the terminal, you’ll encounter the Bad CPU Type in Executable error. You can resolve such issues by manually installing Rosetta 2 with the following steps:
- Press Command + Spacebar to bring up the spotlight, type
terminal
, and press Enter. - Execute the following command in the terminal:
softwareupdate --install-rosetta
- Type a and press Enter to accept the license agreement.
- You should see a message stating Install of Rosetta 2 finished successfully. As Rosetta works automatically in the background, you should be able to run previously incompatible programs without any issues now.
Update macOS
In macOS versions earlier than Monterey 12.1, some binaries were still compiled for x86 processors. But the non-ARM binaries have been updated in the newer versions. So if you’re on an older macOS version, now may be a good time to update your Mac. Here are the steps to do so:
- Click on the Apple Menu from the top left corner.
- Select System Preferences > Software Update > Upgrade / Update Now.
- Install the latest available update and restart your Mac.