launchctl: Load failed: 5: Input/output error macOS Origin: Platform & cloud OSI layer 7 · Application Last updated 5 Nov 2026

macOS: Bootstrap failed: 5: Input/output error / launchctl load: Load failed: 5: Input/output error

launchd couldn't load a LaunchAgent/Daemon plist — it's invalid, already loaded, or has the wrong ownership/permissions.

Exact message you may see Load failed: 5: Input/output errorBootstrap failed: 5: Input/output errorlaunchctl: Load failed: 5: Input/output errorCould not find specified service launchctlService is disabled launchctl
Seen on: macOS

Meaning

Validate with plutil -lint file.plist, check permissions (LaunchDaemons must be owned by root:wheel and not group-writable), and unload the old job first (launchctl bootout gui/$(id -u) path). Prefer bootstrap/bootout over deprecated load/unload. log show --predicate 'subsystem == "com.apple.xpc.launchd"' --last 5m reveals details.

Common causes

  • Invalid plist syntax or missing keys
  • Service already loaded
  • Wrong owner/permissions on the plist
  • Program path doesn't exist or isn't executable
  • Loading a system daemon without sudo

⚡ Quick fix

  1. plutil -lint ~/Library/LaunchAgents/x.plist
  2. launchctl bootout gui/$(id -u)/label then launchctl bootstrap gui/$(id -u) path
  3. sudo chown root:wheel /Library/LaunchDaemons/x.plist && sudo chmod 644

Detailed fix by platform

macOS

  1. launchctl print gui/$(id -u)/com.example.job shows state and last exit status

How to diagnose

  1. Plist — Valid?
  2. State — Already loaded?
  3. Perms — root:wheel 644?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Platform & cloud. Errors that are often confused with or caused by this one (click to open):

Docker Desktop requires privileged access (vmnetd) — macOS: Docker Desktop needs privileged access / com.docker.vmnetd could not be started (macOS)Docker Desktop requir…fork: Resource temporarily unavailable — macOS: -bash: fork: Resource temporarily unavailable (process limit reached) (macOS)fork: Resource tempor…Homebrew Cask: It seems there is already an App at — Homebrew: Error: It seems there is already an App at '/Applications/Chrome.app' (macOS)Homebrew Cask: It see…Homebrew: No available formula with the name — Homebrew: Error: No available formula with the name "x". Did you mean ...? (macOS)Homebrew: No availabl…Job for x.service failed — Job for nginx.service failed because the control process exited with error code (Linux)Job for x.service fai…Port 5000/7000 already in use (AirPlay Receiver) — macOS: Address already in use — Port 5000 is in use by ControlCenter (AirPlay Receiver) (macOS)Port 5000/7000 alread…Start request repeated too quickly — systemd: Start request repeated too quickly / service hit its start limit (Linux)Start request repeate…status=203/EXEC — systemd: Main process exited, code=exited, status=203/EXEC (Linux)status=203/EXEClaunchctl…

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.