Why that error happens
launchctl unloadis deprecated on newer macOS; Apple wants you to usebootstrap/bootout. Even then, many Apple-signed system agents/daemons are protected by SIP, so unloading them usually fails (you see EIO/5). (Stack Overflow)
Practical ways that actually stop the downloads
Below are the 3 approaches that have worked for people when launchctl won’t cooperate. You can do just #1, but #2 or #3 make it stick.
1) Stop the trigger (screen saver/wallpaper)
- System Settings → Screen Saver: pick a static one (not “Aerial/Apple TV”/animated).
- System Settings → Wallpaper: pick a static photo (avoid “Shuffle”/dynamic/animated).
This removes the reason
idleassetsdkeeps fetching gigabytes. (Multiple reports point to animated/Aerial assets as the cause.) (Ask Different)
2) Nuke the already downloaded cache (safe)
Open Terminal and run:
sudo rm -rf "/Library/Application Support/com.apple.idleassetsd/Customer/"*
This reclaims the space; it will only re-download if the triggers in #1 are still on. (Users have confirmed this is where those multi-GB videos live.) (MacRumors Forums)
3) Block the network call (works even if the process respawns)
Since unloading is blocked, deny its traffic. Two easy options:
Option A — Add a hosts entry (quick & free)
Some users stopped the flood by blocking one of Apple’s endpoints used by idleassetsd:
sudo sh -c 'printf "\n# Block idleassetsd fetches\n127.0.0.1 sylvan.apple.com\n" >> /etc/hosts'
sudo dscacheutil -flushcache
Reboot (or toggle Wi-Fi off/on). This prevents connections to that host; reports say it halts the data spike. You can remove the line later to revert. (Apple Support Community)
Note:
aaplimg.comis also used, but/etc/hostscan’t wildcard subdomains. If traffic continues, use Option B.
Option B — Use an outbound firewall (best control)
Install LuLu (free) or Little Snitch (paid) and block idleassetsd (or block the domains it hits). This reliably stops the downloads even if the process keeps respawning. (Ask Different)
If you still want to try launchctl
For completeness, the modern command is:
# For system daemons (root)
sudo launchctl bootout system /System/Library/LaunchDaemons/com.apple.idleassetsd.plist
# For per-user agents (if it exists as an agent)
launchctl bootout gui/$UID /System/Library/LaunchAgents/com.apple.idleassetsd.plist
…but on current macOS this commonly fails due to SIP protection (that’s the EIO/5 you’re hitting). Blocking traffic (#3) is the reliable workaround. (Stack Overflow)
Quick “do this now” path
- Switch to static screen saver + wallpaper. (Ask Different)
- Delete the cache (command in #2). (MacRumors Forums)
- Add the hosts line (or install LuLu and block
idleassetsd). (Apple Support Community)
If you want, tell me which route you prefer (hosts vs. LuLu), and I’ll give you the exact steps/screens to click through.