UAD Installer Bug Fix — How to Beat the Clock
For weeks, my Universal Audio rig was dead in the water. Every attempt to install UAD
Software on macOS Tahoe ended the same way — a gray dialog reading *"The installation
failed. The Installer encountered an error that caused the installation to fail. Contact
the software manufacturer for assistance."* No error code. No hint. Reinstall, reboot,
uninstall, reinstall — same wall, every time, always at about the ten-minute mark.
I finally handed the problem to my AI agent (Claude, working directly on my Mac), and
the whole thing unraveled in about twenty minutes. The culprit turned out to be something
I'd never have guessed — and the fix required *finishing the installer's job by hand.*
## The first rule of "installation failed": read the real log
That generic dialog is hiding a specific reason, always. The agent's first move was to
pull the actual installer log:
grep -iE 'uaudio|exceeded|PKInstallErrorDomain' /var/log/install.log | tail -40
And there it was, in plain text:
PackageKit: Terminating PKInstallTask(...). Task has exceeded its 600 seconds of runtime.
PackageKit: Install Failed: Error Domain=PKInstallErrorDomain Code=112
"An error occurred while running scripts from the package "UAD_11_8_3_321.pkg"."
macOS enforces a hard 600-second limit on installer scripts. UAD's post-install
script was being *killed mid-run* by the operating system. Every single time.
## Why the script couldn't finish
Digging into the package's own scripts revealed the bottleneck: UAD's installer copies
its factory presets one file at a time — a separate process spawned per file — across
18,000+ preset files. Add Tahoe's per-file security scanning on an Intel Mac, and
that loop simply cannot finish inside ten minutes. PackageKit kills it, the dialog
shrugs, and — critically — everything scheduled *after* the preset copy never runs.
Including the single most important step: installing the audio driver.
That's why reinstalling never helped. The plug-ins actually made it onto disk every
time (225 of them, sitting happily in /Library/Audio/Plug-Ins/Components/). The
script itself was the bottleneck — a race it lost against the same clock, every run.
(One more lesson from the post-mortem: an earlier round of failures on this machine had
a totally different cause — a nearly-full startup disk. The installer streams a
~6.4 GB package and needs room to unpack it. So before anything else: df -h, and make
sure you have 50 GB+ free. Two different failures, one identical dialog.)
## The fix: finish the installer's job by hand
Since the payload was already installed and only the timed-out tail was missing, the
answer was to do that tail manually — where no 600-second guillotine exists.
1. Verify the driver the installer left behind. The signed kernel extension was
staged but never placed:
codesign --verify --verbose=2 \
"/Library/Application Support/Universal Audio/Drivers/Signed/UAD2System.kext"
A valid signature from *Developer ID Application: Universal Audio* means it's intact.
2. Place it — exactly what UA's own script would have done:
sudo bash -c '
K="/Library/Application Support/Universal Audio/Drivers/Signed/UAD2System.kext"
chown -R root:wheel "$K"
rm -rf /Library/Extensions/UAD2System.kext
mv "$K" /Library/Extensions/
chown -R root:wheel /Library/Extensions/UAD2System.kext
touch /Library/Extensions
'
3. Give macOS its blessing. Tahoe won't load a third-party kernel extension without
explicit approval: System Settings → General → Login Items & Extensions → Allow
the Universal Audio system software. On an Intel/T2 Mac you may need one detour first —
boot into Recovery → Startup Security Utility → Reduced Security + allow kernel
extensions from identified developers. (In my case the Allow button finally appeared
after the manual driver placement — that placement is what triggers macOS to offer it.)
4. Reboot. The driver loads, UAD Meter sees the hardware, and weeks of mystery end
with music coming out of the speakers again.
## The takeaways
- "Installation failed" is never the real error. /var/log/install.log knows the
truth; Code=112 + "exceeded its 600 seconds" is a script timeout, not corruption.
- A timeout failure can't be fixed by retrying. The script loses the same race every
time. Either the work gets faster (not up to you) or you do the remainder manually.
- Check disk space first. The identical dialog also fires when the installer runs
out of room. df -h costs three seconds.
- This is ultimately UA's bug to fix — a per-file copy loop that doesn't scale to
its own preset library inside macOS's script budget. If you hit it, send UA the log
lines; "your postinstall exceeds PackageKit's 600-second limit" is a bug report they
can act on.
- And personally: having an AI agent that can read installer internals, correlate logs,
and hand-finish a broken install turned a weeks-long wall into a twenty-minute fix.
The era of debugging alone is over.