Bugs & Fixes: Solving a Yosemite post-install disaster
Updating to a major new version of OS X can seem akin to walking through a mine field, albeit one with relatively few mines. In most instances, you’ll be fine. But you never know when disaster may strike.
In my case, the OS X Yosemite upgrade went as smooth as silk for my 2012 MacBook Pro. I’ve been happily running it via beta versions for months. I waited until the release version of Yosemite before upgrading my 2009 Mac Pro. I expected things to go just as smoothly. Instead, I hit a mine.
The installation itself was a success. However, as soon as I attempted to use the Mac, all hell broke loose. The most serious symptom was that almost every action now proceeded at a snail’s pace. Several apps—notably Safari, Tweetbot, Outlook, and even the Finder—often became entirely unresponsive. I had to repeatedly Force Quit these apps just to maintain a minimum level of response.
Other symptoms included an inability to use OS X’s screen capture, a failure for custom desktop pictures and screensavers to be saved across a restart, and a loss of all audio. When I went to System Preferences to troubleshoot these symptoms, I quickly wound up with an endless spinning beachball. If I clicked the Sound preferences icon, the app immediately crashed.
What was going on? What could be causing such an odd multitude of serious symptoms? Was it the OS X software itself? Or a conflict with some existing third-party software? I had no idea. But I was determined to find out.
Spoiler: For those in a hurry to know the answer, I’ll cut to the chase. The perpetrator of all the symptoms was a single obscure file (technically, a plug-in folder containing several files): InstantOn.driver. It's located in Volume/Library/Audio/Plug-Ins/HAL and is optionally installed as part of Rogue Amoeba’s Audio Hijack Pro.
As it turns out, Rogue Amoeba has been aware of the incompatibility for some time. They posted a warning against using the Instant On driver soon after the developer version of Yosemite was released. Over the summer, they released Audio Hijack Pro (and Airfoil) updates that included a new compatible version of Instant On.
I never installed the update because I was unaware that it existed. I was still using a version from 2013 (and only had the app on my Mac Pro, which is why I didn’t have the same problem with my MacBook). My lack of awareness was mainly because I hardly ever use Audio Hijack. The last time I even launched the app was sometime in the first quarter of 2014, so I never received any in-app notifications. Unfortunately, the Instant On plug-in remains active—and a potential source of trouble—even if you do not open its parent program.
If you are aware of all this, the fix is simple: delete the out-of-date Instant On driver and install the new one. Had I known to check the Rogue Amoeba website, I would have been led to this solution. But how would I know to check? I did try a few Google searches, describing the symptoms, but nothing about Instant On ever appeared in the results.
So, I had to instead use old-fashioned detective work to track down the culprit. As the same technique works for solving a variety of similar problems, you may find it helpful to know what I did.
- I downloaded a fresh copy of Yosemite from the Mac App Store and reinstalled the update. Had the cause of the symptoms been a faulty install, this could have cured my Mac. It did not.
- I restarted via a Safe Boot. This disables login items as well as selected system software. If the symptoms vanished, it would indicate that one of the disabled items was the culprit. The symptoms did not vanish.
- I logged into a test user account. This would tell me if the problem was incompatible software specific to my personal ~/Library folder. The symptoms remained.
- Getting desperate, I installed a clean version of Yosemite onto a spare hard drive and booted from it. This checked if the culprit was anything on my default drive that was not included as part of the new software. If this failed, I was out of routine options. It would indicate some hardware-related issue.
Fortunately, it did not fail. The symptoms disappeared when booted from the clean install. This suggested that the problem was third-party software located either in the /System/Library or (more likely) the /Library folder on my default startup drive.
But how to find out which one of the hundreds of thousands of files in these folders was causing all the havoc? To discover the answer, I turned to tiresome trial-and-error. After making sure I had everything backed up, I removed a half dozen subfolders from the main /Library folder and restarted. If removing the folders had no effect, I would remove an additional group of six folders and restart again. I did this until the symptoms vanished. By doing this, I narrowed the likely cause to one group of six folders.
Now I added back three of the suspect six folders and restarted again. Bingo! The symptoms returned. I kept going with this process of alternately removing files and adding them back, as appropriate, until I determined that InstantOn.driver was the guilty item.
The moral of the story? There are actually two. First, no matter how bad the situation looks, don’t despair. There may be a simple and easily fixable cause for your Mac troubles. Second, never underestimate the power of a single item, even an obscure seemingly innocuous one, to cause a world of trouble. Trust me. I have first-hand experience.
Another Yosemite sound conflict…
It turns out that Instant On is not the only software with a sound-related conflict in OS X Yosemite. Ambrosia’s Snapz Pro X installs an Audio Support kext file in /System/Library/Extensions. The current version of the file does not work with Yosemite. This is apparently one of several incompatibilities between Snapz Pro and Yosemite. Ambrosia states: “There is an update planned for the near future, but we cannot give you an ETA of the release.”