Developers transitioning to M1 Mac and newer processors have repeatedly faced the Bad CPU type error when installing development tools such as Android Studio or the Java SDK.
While this does not necessarily mean that their CPU is unsupported, but is rather linked to changes in the newer processor’s architecture.
You can easily fix this issue within minutes, and it will not require installing any third-party apps. Just follow alongside me as I lay out the steps.
So, let’s start.
What Causes the Bad CPU Type Error on Mac OS?
You get the BAD CPU Type error on a Mac when you run a 32-bit application on a Mac. Newer versions of Mac OS only support 64-bit apps. Additionally, if you run X86 apps on ARM-based Macs such as the Macbook Air, you will also get this error.
Many users have reported getting this error when running Android Studio and Z-shell. Sometimes you also get an error 86. These programs are made for Intel CPUs and hence cannot run instructions on an ARM processor such as Apple Silicon.
Starting from Mac OS Catalina, Apple decided to drop the support for 32-bit apps. It was announced on October 2019. The last OS to support 32-bit apps was Mojave which was released a year earlier.
Apple informed the developers to transition to the 64-bit starting in 2014. All updates need to be using the newer standard after that period.
You will also encounter the same error if you run applications made for Intel processors in M1, M2, or newer Macs.
Apple transitioned to M1 processors in November 2020. It was now using an architecture similar to the smartphone processors. That meant any existing apps written for the Intel-based Macs would simply not run on the newer models.
Here’s a complete guide on how to check CPU usage on Mac.
How to Fix the Bad CPU Type Executable Error
To fix the Bad CPU type error on Mac, update your application to the latest version so that it is running 64-bit code. Also, install Rosetta if you are on Mac M1 or later models. This should ensure the application will run correctly.
Here are the methods to fix the Bad CPU type executable error on Mac OS:
1. Update the App to 64-bit
The App Store will show you if your application needs an update. You can select Update All Applications or select the specific app and update it individually.
Before proceeding with the update, google if the 32-bit app you are using received a 64-bit update. If the Developer did not update the app, then you have to use a different method to run the app on your Mac.
Here are the steps to update your app on Mac OS:
- Click on the Apple menu and press on App Store.
- Go to Updates. Here you can see all available updates for your applications. You can click the Update button next to each app to start the update process. If you do not see your app go to the next step.
- Type in your app’s name on the search bar. Click on the correct app from the search result.
- Click Update.
Depending on how fast your internet speeds are, the time remaining will be shown. Open the app once the update is finished.
We also fixed the high CPU usage with the kernel task process on Mac OS. Do check it out.
2. Install Rosetta 2
To run older apps on Apple Silicon-based Macs, you will need Rosetta 2 installed. It translates the instructions present in any application’s code to run on the new processor.
This will enable any old app to run on Mac M1. Code editors, Software SDK, Runtimes, etc. will run flawlessly with Rosetta 2 handling all the translations. But expect the raw performance to be less than an app that is built natively for Apple Silicon.
Follow the steps to install Rosetta 2 on Mac M1 or later:
- Press Command + Space and type Terminal. Click to open it.
- Now type in softwareupdate –install-rosetta and press the Return key.
- Press A when prompted on the Terminal.
You will see the progression of the app as it continues to be installed. A restart is not necessary but will not harm your system if you do it.
Now launch the app you were using earlier. It should work correctly.
Some users have reported the mds_stores process using up their CPU on Mac OS. If you face the same issue check out our separate article.
3. (Bonus) Emulate an older Mac OS to run the unsupported app
You can run a separate operating system inside your Mac as if it was just another app. It is also known as Virtualization.
Parallels is an app that allows you to run any OS, Windows, Linux, or another version of Mac OS within your Mac. Since you want to run a 32-bit app, install Mac OS Mojave. This supports the old version of the app natively.
Unless the application you are using is critical for your business or operations, move on to a modern app.
A good substitute for the app may be already present in the App Store. If you need the old app specifically, request the Developer to build a 64-bit version or one optimized for Apple Silicon. Then you are guaranteed to use it for years going forward.
Boot Camp is a utility built on Mac to install Windows. Read our detailed guide on how to set up Bootcamp properly and save your precious time from troubleshooting.
Frequently Asked Questions
What does bad CPU type in executable mean?
A bad CPU type in executable means that you are running an app that is incompatible with your CPU. Normally this happens if you are running an X86 app on an Apple Silicon based Mac.
How to run 32-bit games on Mac?
To run 32-bit apps on Mac, install Mac OS Mojave. Use an external HDD or SSD to store the OS files and games. That way, your existing files on newer Mac OS will remain safe.
How do I run two operating systems on Mac?
By installing the Mac OS on different drives, you can run two instances of Mac OS. They can be the same or different versions. To switch between the OS, use the Startup Disk app and set which volume to use and then restart your Mac.
Final Words
As you saw in the article, a Bad CPU Type error points to a mismatch between the application’s code, operating system version, and the type of processor you are running on your Mac.
And you can easily fix the error with minimal fuss, keeping your main focus on productive work.
That’s all for today. Goodbyes for now.