nsurlsessiond on Mac: what it is, why it is high, what to do
nsurlsessiond is the macOS service that moves data in the background for other apps: iCloud Drive and Photos uploads, App Store and macOS update downloads, Mail attachments, and third-party apps that use Apple's background transfer system. It is busy because something is transferring. Normal is near zero CPU with bursts of 20 to 60 percent during a large download or sync. Check Activity Monitor's Network tab: if nsurlsessiond is moving MB per second, a transfer is in progress and it stops when that finishes. High CPU with almost no network traffic means a transfer is stuck retrying, and a restart usually clears it.
- What it is
- The background transfer daemon. Apps hand it downloads and uploads so they continue when the app is closed.
- Normal
- 0 to 2 percent idle. 20 to 60 percent CPU while a big download, iCloud upload or update runs. Look at the Network tab.
- Not normal
- High CPU for hours with little network traffic, or gigabytes per day moving with no app that explains it.
- Safe to quit?
- It restarts and the transfer resumes from where it stopped. Harmless, but it does not finish anything faster.
- The one safe fix
- Find the transfer in the Network tab, let it finish or pause the app. Restart if it is stuck.
What nsurlsessiond does
Apple gives apps a way to say "download this, even if I am closed," and the thing that actually does the downloading is nsurlsessiond. The name comes from NSURLSession, the networking framework; the d means daemon. When you start a 5 GB macOS update and go to lunch, nsurlsessiond fetches it. When Photos uploads a weekend of video to iCloud, nsurlsessiond carries it. When Mail downloads a large attachment, when the App Store updates ten apps overnight, when iCloud Drive pulls a folder down to a new Mac: the same process, every time.
Third-party apps use it too, and some use it heavily. Microsoft Office, Adobe's updaters, Dropbox-style sync tools and many games hand their big transfers to it. That is why the name appears in Activity Monitor with no obvious app attached: the app that asked may not even be running.
It runs per user and as a system daemon, so you may see two or three copies. That is normal.
Why nsurlsessiond is using CPU right now
- A transfer is actually running. A macOS or App Store update, iCloud Photos uploading after an import, iCloud Drive syncing a big folder, Mail fetching a mailbox. Moving MB per second takes CPU for encryption and writing to disk. This is the common case and it ends by itself.
- A new Mac or a fresh sign-in. Everything downloads at once for a day. Expect it to be busy on and off.
- A transfer that keeps failing and retrying. A file that cannot upload (too large for iCloud, a permissions problem, a corrupt item), a server that keeps rejecting the connection, a network that drops out. nsurlsessiond retries with backoff, logs each failure, and in the worst cases runs hot with almost nothing moving. One Catalina user saw it "taking 60% of CPU" with no transfer they could identify.
- The certificate validation loop. nsurlsessiond is the process that fetches certificate revocation data for trustd. On a network where that connection is blocked or slow (VPN, firewall, captive portal), both run hot and syslogd joins in to write the logs. Jeff Johnson's 2021 investigation found that "the issue can be temporarily solved by preventing nsurlsessiond from connecting to valid.apple.com," which tells you where the loop lives, though blocking Apple's servers is not a fix anyone should keep.
- A third-party app that downloads constantly. One developer forum report found it had "consumed excessive data (75GB+) while Microsoft Office was installed." An updater or telemetry component stuck in a loop looks exactly like this: gigabytes a day, no visible app.
What it is not: malware. It is part of macOS and cannot be replaced. Any page offering to "remove nsurlsessiond" is selling a cleaner.
What normal looks like, and what is not
CPU alone does not tell you much here. Pair it with the Network tab in Activity Monitor, which shows bytes received and sent per process:
To see the traffic: Activity Monitor, Network tab, sort by Rcvd Bytes or Sent Bytes. nsurlsessiond at the top with a number that keeps growing is a live transfer. Then ask which app: check System Settings, General, Software Update for a download in progress; Photos for an "Uploading" line at the bottom of the Library; Finder's iCloud Drive for progress circles; and the App Store's Updates page.
On a laptop, large transfers pause when the Mac sleeps, so a 20 GB upload that only runs while the lid is open can take days of calendar time and look like a process that never stops.
Is it safe to quit nsurlsessiond?
Yes, nothing breaks. It restarts a moment later and the transfer resumes from where it stopped, because background transfers are designed to survive exactly this. It is also pointless for the same reason: the work is still queued. People who force quit it every hour are watching the same upload restart every hour.
The Terminal advice in some videos, disabling the daemon with launchctl, breaks App Store updates, iCloud sync and Mail attachments all at once. Skip it. The decision tree is the general rule:
The thing to pause is the app at the source: iCloud Photos, iCloud Drive, the App Store update, or the third-party tool. Pause that and nsurlsessiond has nothing to do.
What to do, in order
- Look at the Network tab
Activity Monitor, Network, sort by Rcvd Bytes. If nsurlsessiond is moving data steadily, something is transferring. Find it: Software Update, Photos (bottom of Library), Finder iCloud Drive, App Store Updates, Mail activity window (Window, Activity).
- Let it finish, or pause the source
An update or a photo upload ends on its own. If you need the bandwidth now, pause iCloud Photos in Photos, Settings, iCloud (Pause for one day), or pause the App Store update. Resume later.
- Check the network path
If CPU is high with almost no traffic, turn off any VPN, DNS filter or firewall app and leave any Wi-Fi with a login page. If nsurlsessiond and trustd both calm down, the validation loop was the cause.
- Restart
Clears a transfer stuck in retry and resets the daemon. The most reliable fix for the stuck case.
- Find the app that uses the data
If gigabytes a day keep moving with no Apple app to blame, look for third-party updaters: Office, Adobe, Google, game launchers. Quit or update them one at a time and watch the Network tab. One of them will be it.
- Sign out of iCloud and back in, last resort
Only if a specific iCloud upload has been stuck for days after a restart. System Settings, your name, Sign Out, keep a copy of data when asked, then sign back in. Expect a day of re-sync afterwards, which is why this is last.
When to worry
nsurlsessiond is not a security problem, but what it moves can be worth a look:
- Data caps. On a metered or tethered connection, a looping updater can burn gigabytes a day. The Network tab catches it. Pause iCloud Photos and large updates when on a phone hotspot.
- Battery. Uploads on battery drain fast. Do big syncs on power.
- Stuck for days. If the same file never finishes uploading to iCloud, open iCloud.com, check whether it is there, and consider moving it out of the synced folder. Files over iCloud's size limit never finish.
- High CPU with trustd and syslogd. The certificate loop. Fix the network, restart.
Safe to Quit records each process's network traffic alongside its CPU over hours, so a transfer that runs all night shows up as a line you can read in the morning, with the app that started it, instead of a number you happened to catch.
What people hit, in their words
“It seems that the issue can be temporarily solved by preventing nsurlsessiond from connecting to valid.apple.com.”
“The issue occurred on a macOS device where nsurlsessiond consumed excessive data (75GB+) while Microsoft Office was installed.”
“The syslogd high CPU I am pretty sure is a result of the excess logging coming from trustd and nsurlsessiond.”
Questions people ask
What is nsurlsessiond on my Mac?
It is the macOS background transfer daemon. Apps hand it downloads and uploads that should continue even when the app is closed or the Mac is busy: macOS and App Store updates, iCloud Drive and iCloud Photos sync, Mail attachments, and third-party apps that use Apple's networking framework. It is a normal part of macOS, not malware, and it is only active while something is transferring or retrying.
How do I stop nsurlsessiond?
Stop the transfer, not the daemon. Check the Network tab in Activity Monitor to see that it is moving data, then find the source: pause iCloud Photos in Photos settings, pause the App Store update, or quit the third-party app that is downloading. Force quitting nsurlsessiond only restarts it and the transfer resumes. Disabling it with Terminal breaks updates and iCloud sync across the Mac.
Is nsurlsessiond a virus?
No. It is part of macOS on the sealed system volume and cannot be replaced by malware. High CPU or high data use from it means an app asked it to transfer something, or a transfer is stuck retrying. The worthwhile check is which app: look at the Network tab, then at Software Update, Photos, iCloud Drive and any third-party updaters. Sites offering to remove nsurlsessiond are selling cleaner software.
Why is nsurlsessiond using so much data?
Because an app is downloading or uploading through it. The big legitimate ones are macOS updates (several GB), iCloud Photos after an import, and iCloud Drive on a new Mac. The suspicious ones are third-party updaters stuck in a loop; one developer forum report traced 75 GB of traffic to an Office installation. Sort Activity Monitor's Network tab by bytes, then quit third-party apps one at a time until the counter stops climbing.
Why is the kernel task so high alongside nsurlsessiond?
Because sustained downloads and uploads warm the Mac, and kernel_task is the thermal brake: it takes CPU time away when the chip gets hot. Encrypting and writing a large transfer, plus a looping daemon, is enough to heat a laptop on a soft surface. Let the transfer finish on a hard surface with power connected and both numbers fall together. kernel_task is the response, not the cause.
Sources and further reading
- Why are trustd, nsurlsessiond, syslogd causing high CPU on Mac?, Apple Community the 2020 logging loop thread
- High CPU Use From trustd, Michael Tsai the nsurlsessiond to valid.apple.com connection
- Excessive data consumption by nsurlsessiond on macOS when Microsoft Office is installed, Apple Developer Forums
- nsurlsessiond issue using 100% CPU, Apple Developer Forums