Fix com.apple.launchd.peruser Crash Loop on macOS
The com.apple.launchd.peruser error causes repeated crash logs and high CPU usage. This guide explains symptoms, root causes, and step-by-step fixes to stop the crash loop on macOS.
Symptoms
- Repeated crash reports for
com.apple.launchd.peruserin Console.app - High CPU usage by
launchdorkernel_task - System sluggishness or beachball cursor
- Crash logs filling up
~/Library/Logs/DiagnosticReports - User session may fail to start properly after login
Root Causes
The com.apple.launchd.peruser process manages user-specific launch agents (plist files in ~/Library/LaunchAgents). A crash loop occurs when:
- A corrupted or misconfigured third-party launch agent plist causes launchd to crash repeatedly
- Damaged user preferences or cache files
- Permissions issues on user Library folders
- Incompatible software installed via Homebrew or other package managers
- macOS system corruption after an update or upgrade
Step-by-Step Fix
1. Boot into Safe Mode
- Restart your Mac and hold the Shift key during startup
- Release when the login window appears (may take longer)
- Safe Mode disables all third-party launch agents and kernel extensions
- If the crash stops, a third-party agent is the culprit
2. Identify Problematic Launch Agents
- Open Terminal
- List all user launch agents:
ls ~/Library/LaunchAgents/ - Check system-wide agents:
ls /Library/LaunchAgents/andls /Library/LaunchDaemons/ - Look for recently added or suspicious plist files (e.g., from uninstalled apps)
3. Remove or Disable Suspect Plists
- Move suspect plists to a backup folder:
mkdir ~/Desktop/backup_launchagents && mv ~/Library/LaunchAgents/suspect.plist ~/Desktop/backup_launchagents/ - Repeat for any other suspicious files
- Restart normally and check if the crash loop stops
4. Repair Permissions (macOS Catalina and earlier)
- Boot into Recovery Mode (Cmd+R at startup)
- Open Terminal from Utilities menu
- Run:
diskutil resetUserPermissions / $(id -u) - For system permissions:
diskutil repairPermissions /(if available)
5. Reset User Launch Services Database
- In Terminal:
sudo launchctl unload -w ~/Library/LaunchAgents/*.plist - Then:
sudo launchctl load -w ~/Library/LaunchAgents/*.plist - Alternatively, remove all user agents temporarily:
mv ~/Library/LaunchAgents ~/Library/LaunchAgents_backup - Restart and create a new empty LaunchAgents folder:
mkdir ~/Library/LaunchAgents
6. Check for Homebrew or MacPorts Conflicts
- If using Homebrew, run:
brew doctorandbrew cleanup - Remove any outdated or broken packages:
brew remove --force - For MacPorts:
sudo port -f uninstall inactive
Alternative Fixes
- Create a new user account: If the issue persists only for your user, create a new admin account and migrate data. This isolates user-specific corruption.
- Reset NVRAM/PRAM: Shut down, then press Option+Cmd+P+R at startup for 20 seconds.
- Reinstall macOS: Use Recovery Mode to reinstall macOS without erasing data. This replaces system files but preserves user data.
Prevention
- Only install launch agents from trusted developers
- Regularly clean up old plist files from uninstalled apps
- Keep macOS and all software updated
- Use
launchctl listperiodically to review running agents - Back up your Mac with Time Machine before making system changes
By following these steps, you can resolve the com.apple.launchd.peruser crash loop and restore normal system performance.
Was this solution helpful?