You opened Console (or you're tailing a log) and you've got a wall of red: xpcproxy exited due to signal 9. It's repeating every few seconds. Fans are spinning up. Your Mac feels sluggish. Maybe it's a client's machine and you've got 20 minutes before they come back from lunch.
xpcproxy is Apple's little helper that launches XPC services — the sandboxed background processes that macOS uses for everything from Quick Look previews to Spotlight indexing. When something tries to launch an XPC service and that service dies immediately, launchd kills it with SIGKILL (signal 9) and logs exactly what you're seeing. The spam means something is retrying over and over.
Had a client last month — a 2019 iMac running Sonoma 14.5 — whose entire print queue died because of this. Turns out a busted HP printer LaunchAgent was crashing on every launch attempt, and the retry loop was eating 40% CPU. Same error, different cause than what most guides tell you.
Work through the steps below in order. Stop as soon as the spam stops.
Step 1: The 30-Second Fix — Find What's Crashing
Don't start by rebooting. You'll lose the evidence. Open Terminal and run this first:
log show --last 5m --predicate 'eventMessage CONTAINS "xpcproxy"' | grep -i "exited due to signal"
That gives you the last five minutes of xpcproxy deaths. Now the important part — look for the service name that appears right before the death. Try this instead:
log show --last 2m --predicate 'process == "xpcproxy"' --info
You're hunting for a bundle identifier — something like com.hp.printer.agent or com.adobe.acc.installer. That name is your culprit. Write it down.
If nothing jumps out in Terminal, open Console.app, click your Mac in the sidebar, and type xpcproxy in the search box. Set the filter to "Errors and Faults". The bundle ID will be right there.
Real talk: 8 out of 10 times, this is a third-party LaunchAgent that got corrupted after a macOS update. Adobe, HP, Logitech, and Microsoft Office are the usual suspects. Creative Cloud in particular has been shipping a broken updater agent since Ventura.
Step 2: The 5-Minute Fix — Disable the Broken LaunchAgent
Once you've got the bundle ID, check if it's running as a launch agent:
launchctl list | grep -i xpcproxy
And list the user agents:
launchctl print gui/$(id -u) | grep -i -B2 -A2 "com.your.bundleid"
If it shows up, unload it. Replace the bundle ID with yours:
launchctl bootout gui/$(id -u)/com.your.bundleid
On older macOS (pre-Big Sur), use:
launchctl unload -w ~/Library/LaunchAgents/com.your.bundleid.plist
Watch Console for 60 seconds. If the spam stops, you've found it. Now go delete or rename the plist so it doesn't come back on reboot:
mv ~/Library/LaunchAgents/com.your.bundleid.plist ~/Library/LaunchAgents/com.your.bundleid.plist.disabled
The .plist.disabled extension means launchd ignores it. Don't just delete it — if the app turns out to need it, you want it back.
Check the system-level agents too
Plenty of culprits live in /Library/LaunchAgents and /Library/LaunchDaemons. Same deal:
ls -la /Library/LaunchAgents/
ls -la /Library/LaunchDaemons/
Anything with a recent modification date that matches your last app install or OS update is suspicious. Unload it the same way (use sudo for daemons).
Step 3: The 15+ Minute Fix — Deep Cleanup When Nothing Else Works
If the bundle ID isn't obvious, or if it's an Apple service (starts with com.apple.) that's dying, you've got a deeper problem. Don't run sudo killall xpcproxy — I see that recommended everywhere and it does nothing useful. launchd just respawns it and you're back to square one.
Reset the LaunchServices database
Corrupted LaunchServices is a sneaky cause. Quick Look and Spotlight XPC services start dying in a loop, and you get xpcproxy signal 9 in the log. Rebuild it:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
Give it a few minutes. It'll rebuild and you may see the spam stop as it goes.
Boot into Safe Mode and log out the noise
Reboot holding Shift (Intel) or holding the power button then Shift (Apple Silicon). Safe Mode disables all third-party launch agents. If the xpcproxy spam disappears, you've confirmed it's a user-installed agent. Boot back to normal and go through ~/Library/LaunchAgents, /Library/LaunchAgents, and /Library/LaunchDaemons, moving half of them into a temp folder, rebooting, and narrowing down. Binary search the list — takes 10 minutes, beats guessing.
Nuke the corrupted cache
One more thing worth trying before you consider reinstall: the XPC cache. It regenerates on boot.
sudo rm -rf /var/folders/*/*/*/com.apple.xpc.launchd
sudo reboot
This forces launchd to rebuild its service database on next boot. Had a MacBook Air last year where a dead Malwarebytes agent had corrupted this cache and it was the only thing that stopped the loop.
Common Culprits Worth Checking First
| Bundle ID prefix | Usually from | Fix |
|---|---|---|
| com.adobe.* | Creative Cloud / Acrobat | Uninstall CC, reinstall clean |
| com.hp.* | HP Easy Start / printer drivers | Remove HP Easy Start entirely |
| com.microsoft.office.* | Office updater | Disable the AutoUpdate agent |
| com.logi.* | Logitech Options / G Hub | Update to latest or uninstall |
| com.apple.* | macOS itself | Safe Mode, then reinstall OS |
When to Just Reinstall macOS
If you've disabled every third-party agent, booted clean, rebuilt LaunchServices, and you're still seeing com.apple.something die with signal 9 — the OS itself is damaged. Back up, then install macOS fresh over the top (not a wipe, just a reinstall from Recovery). It preserves your data and replaces the system files. I've fixed maybe three machines that way in five years. It's rare but it happens, usually after an interrupted OS update.
One last tip: if you're troubleshooting someone else's Mac and you don't want to break their workflow, run the fix in this order and check Console between each step. The moment the spam stops, you know exactly which change did it — and that's what you write down in your notes for next time.