Open Task Manager after the Windows 11 24H2 update and you may find Modern Setup Host (SetupHost.exe) holding 30–70% CPU indefinitely — fans roaring, battery draining, and nothing visibly installing. This is one of the most common post-24H2 complaints, and it’s rarely malware: Microsoft’s update engine gets stuck in a preparation loop.

Modern Setup Host is the process that installs feature updates, prepares enablement packages, and runs the post-update setup tasks. During the 24H2 rollout it does heavy work — migrating drivers, re-registering components, and optimizing the servicing stack. The problem starts when it doesn’t stop. If you’ve been watching it for hours with no progress in Settings > Windows Update, treat it as stuck.

The good news: this is almost always a servicing-state problem. A stuck update cache, a half-applied component, or a driver fighting the new OS build is usually behind it. If you want a broader approach first, see the general 24H2 slowdown guide or the dedicated Modern Setup Host walkthrough .

Why this happens

  • Stuck update preparation loop: SetupHost retries a preparation step that keeps failing silently, consuming CPU with each attempt.
  • Corrupt SoftwareDistribution cache: Damaged downloaded update files force repeated re-downloads and re-verification.
  • Pending component store operations: A stuck pending.xml in the WinSxS store keeps the servicing engine spinning.
  • Post-24H2 driver migration: Incompatible or unsigned drivers being re-evaluated after the feature update can stall setup.
  • Low disk space: 24H2 needs significant working space; with under ~15–20 GB free, setup tasks thrash without finishing.
  • Conflicting third-party setup agents: OEM updaters (Lenovo Vantage, Dell SupportAssist) or antivirus hooks interfering with servicing.
  • Corrupt system files: Damaged servicing stack components from a prior interrupted update.

How to fix it

Work through these in order — diagnose first, then act.

Fix 1: Confirm whether an update is actually in progress

Rule out legitimate work before killing anything.

  1. Open Settings > Windows Update and check the status line — if it says “Downloading,” “Installing,” or shows a percentage, SetupHost is working. Give it up to 3 hours on an SSD, longer on an HDD.
  2. Check Settings > Windows Update > Update history — confirm 24H2 shows as “Successfully installed.” If it does and SetupHost is still burning CPU, it’s stuck.
  3. Open Task Manager, right-click Modern Setup Host > Open file location — it should point to $Windows.~BT\Sources\SetupHost.exe or C:\Windows\System32. Anything else is suspicious.
  4. Note the CPU pattern: steady high CPU for hours with no progress = stuck. Spikes that come and go = probably still working.
  5. If an update is genuinely in progress, plug in the charger, close heavy apps, and let it finish — interrupting it creates exactly this stuck state.

Fix 2: End the stuck process safely

When the update is done but SetupHost won’t leave.

  1. In Task Manager, right-click Modern Setup Host > End task. Do this only after confirming the update is installed (Fix 1).
  2. Watch for 2–3 minutes — on many systems CPU drops to normal and it doesn’t return. Problem solved.
  3. If it respawns within minutes at high CPU, don’t keep killing it — that signals a retry loop. Move to Fix 3 to clear the state it’s choking on.
  4. Check the Details tab for multiple SetupHost.exe instances — kill all of them if they’re all post-update leftovers.
  5. After ending it, restart the laptop once. A clean boot after the process exits often finalizes whatever it was stuck on. Microsoft documents update behavior at Windows support .

Fix 3: Clear the Windows Update cache

The most reliable fix for the retry loop.

  1. Open an elevated Command Prompt (search cmd, right-click > Run as administrator).
  2. Stop the update services: net stop wuauserv, net stop cryptSvc, net stop bits, net stop msiserver. Wait for each to confirm it stopped.
  3. Rename the cache folders so Windows rebuilds them: ren C:\Windows\SoftwareDistribution SoftwareDistribution.old and ren C:\Windows\System32\catroot2 catroot2.old.
  4. Restart the services: net start wuauserv, net start cryptSvc, net start bits, net start msiserver.
  5. Open Settings > Windows Update > Check for updates — let it re-scan. The fresh cache usually ends the SetupHost loop because there’s nothing stale left to retry.

Fix 4: Run the Windows Update troubleshooter and repair servicing

Automated repair for the servicing stack.

  1. Go to Settings > System > Troubleshoot > Other troubleshooters > Windows Update > Run. Let it detect and apply fixes.
  2. Open an elevated terminal and run DISM /Online /Cleanup-Image /RestoreHealth — this repairs the component store that SetupHost depends on. It takes 10–20 minutes.
  3. Follow with sfc /scannow to repair protected system files.
  4. Restart, then check Task Manager for 10 minutes — the combination of DISM repair plus cache clearing resolves most persistent cases.
  5. If DISM reports it couldn’t repair, run it again after rebooting — some corruptions only clear on a second pass.

Fix 5: Free disk space and clean setup leftovers

24H2’s setup engine thrashes when cramped.

  1. Check Settings > System > Storage — you want at least 20 GB free on C:. If you’re below that, this is very likely the cause.
  2. Run Disk Cleanup (search it, run as administrator) > Clean up system files — check Windows Update Cleanup, Temporary Windows installation files, and Delivery Optimization Files. This can free 10–30 GB.
  3. Manually check for leftover $Windows.~BT and $Windows.~WS folders on C: — if 24H2 installed successfully weeks ago, these gigabytes of setup leftovers can be deleted (Disk Cleanup usually handles them, but verify).
  4. Empty the Recycle Bin and move large personal files off C: if needed.
  5. Re-run Windows Update after freeing space — SetupHost often completes immediately once it has room to work.

Fix 6: Update drivers and pause conflicting updaters

A driver fighting 24H2 keeps setup re-running.

  1. Visit your manufacturer’s driver page — Dell support , HP support , or Lenovo support — and install the latest chipset and storage drivers marked 24H2-compatible.
  2. Update the graphics driver from NVIDIA or AMD if you have discrete graphics, or Intel DSA for Intel graphics.
  3. Temporarily pause third-party updaters (OEM utilities, driver booster tools) while troubleshooting — they can re-trigger setup tasks.
  4. In Device Manager, look for any device with a yellow warning triangle — resolve those driver errors first, since SetupHost stalls on unresolved devices.
  5. After driver updates, restart and give SetupHost one more chance to finish — updated drivers often let a stuck migration complete.

Fix 7: Reset Windows Update components fully

For the stubborn cases nothing else fixes.

  1. Open an elevated Command Prompt and stop the services from Fix 3 again.
  2. Delete (not rename) the contents of C:\Windows\SoftwareDistribution\Download — keep the folder itself.
  3. Reset the BITS queue: bitsadmin /reset /allusers.
  4. Re-register update DLLs: run regsvr32 atl.dll, regsvr32 urlmon.dll, regsvr32 mshtml.dll, regsvr32 shdocvw.dll, regsvr32 browseui.dll, regsvr32 jscript.dll, regsvr32 vbscript.dll, regsvr32 scrrun.dll, regsvr32 msxml.dll, regsvr32 msxml3.dll, regsvr32 msxml6.dll, regsvr32 actxprxy.dll, regsvr32 softpub.dll, regsvr32 wintrust.dll, regsvr32 dssenh.dll, regsvr32 rsaenh.dll, regsvr32 gpkcsp.dll, regsvr32 sccbase.dll, regsvr32 slbcsp.dll, regsvr32 cryptdlg.dll, regsvr32 oleaut32.dll, regsvr32 ole32.dll, regsvr32 shell32.dll, regsvr32 initpki.dll, regsvr32 wuapi.dll, regsvr32 wuaueng.dll, regsvr32 wuaueng1.dll, regsvr32 wucltui.dll, regsvr32 wups.dll, regsvr32 wups2.dll, regsvr32 wuweb.dll, regsvr32 qmgr.dll, regsvr32 qmgrprxy.dll, regsvr32 wucltux.dll, regsvr32 muweb.dll, regsvr32 wuwebv.dll — tedious but effective for corrupted registrations.
  5. Restart the services and reboot. Check for updates once more; SetupHost should now behave.

Closing

Modern Setup Host burning CPU after 24H2 is almost never a hardware problem — it’s a stuck update engine. Confirm the update finished, clear the update cache, repair the servicing stack, and give it disk room; in most cases it exits quietly and your fans spin down. If it reappears during a genuine update, let it work — that’s the one time it’s supposed to be busy.

Frequently asked questions

What is Modern Setup Host and why is it running?
Modern Setup Host (SetupHost.exe) is Microsoft’s engine for installing Windows updates, feature upgrades, and setup-related tasks. It appears in Task Manager whenever Windows is downloading, preparing, or installing an update. It is a legitimate system process, not malware. High CPU from it is normal during an active installation, but if it lingers for days after the update completes, the process is likely stuck and needs intervention.
How long should Modern Setup Host normally take?
For a routine cumulative update, Modern Setup Host typically works for 15 to 45 minutes. A full feature update like 24H2 can keep it busy for one to three hours depending on your SSD speed and CPU. If it has been running at high CPU for more than four hours, or it reappears every boot long after the update finished, something has gone wrong — usually a stuck update state or corrupted component store.
Is it safe to end Modern Setup Host in Task Manager?
If it is stuck well after an update completed, ending the task is generally safe — the update has already finished installing and the host is just failing to exit. However, never kill it while an update is actively installing or during the restart phase, as that can corrupt the update state. End it only after confirming in Settings that the update shows as installed and the high CPU has persisted for hours.
Why does Modern Setup Host come back after every reboot?
A recurring SetupHost.exe usually means an update is failing to finalize and Windows keeps retrying it. Common causes include a corrupted SoftwareDistribution cache, a stuck pending.xml in the component store, or insufficient disk space for the update to complete. Clearing the update cache, running the Windows Update troubleshooter, and freeing at least 20 GB on the system drive usually breaks the retry loop permanently.