0x800f0954 error shows up when Windows can’t fetch optional feature files, often because the PC is pointed at WSUS or can’t reach Windows Update.
You usually see this code when you try to turn on .NET Framework 3.5, RSAT, a language feature, or another “Optional feature” inside Windows. The click looks normal, the progress bar moves, then Windows stops with a blunt message and that code. Annoying, yes. The upside is that the fixes are predictable once you know what Windows is trying to download.
This guide walks you through a clean set of checks, then the fixes that work most often on Windows 10 and Windows 11. It’s written for two common setups: a personal PC that uses Microsoft’s update servers, and a work device that’s managed with WSUS, Intune, or Configuration Manager.
What This Error Means In Plain Terms
Optional features are not always stored fully on your drive. When you enable one, Windows may need “payload” files that live on Windows Update, on a corporate update server (WSUS), or on installation media. error 0x800f0954 is what you get when Windows tries to grab that payload and the request gets blocked, redirected, or answered with “not available.”
On home PCs, the usual cause is a damaged servicing stack, broken update components, or a network filter that blocks Microsoft endpoints. On managed PCs, the most common cause is a policy that forces feature downloads through WSUS even when WSUS is not hosting Features on Demand or language packages.
| Where You See It | Common Trigger | Fastest Fix Path |
|---|---|---|
| Windows Features dialog | .NET 3.5 or legacy feature | Install from ISO “sources\sxs” |
| PowerShell Add-WindowsCapability | RSAT, FoD capability | Allow direct download from Windows Update |
| Settings > Optional features | Language feature or FoD | Repair update components, then retry |
Quick Checks Before You Change Anything
Start with these checks. They prevent you from chasing the wrong fix and they take only a few minutes.
- Confirm the target feature — Note whether you’re adding .NET Framework 3.5, RSAT, a language feature, or something else. The offline method differs by feature type.
- Check if the device is managed — If you see “Some settings are managed by your organization” in Windows Update or Settings, assume WSUS or MDM rules may be involved.
- Try a normal update scan — Go to Settings, open Windows Update, then run “Check for updates.” If that also fails, fix Windows Update first.
- Restart once — A reboot clears stuck servicing operations and resets pending component actions.
- Verify disk space — Leave a few gigabytes free. Feature payloads can be large, and low space can derail servicing.
If those checks don’t clear it, move on to the fixes below in order. Most people solve error 0x800f0954 without doing all of them.
0x800F0954 Error When Adding Windows Features
If you’re enabling a feature through “Turn Windows features on or off,” Windows is either pulling files from Windows Update or from a source path set by policy. The next steps aim to get Windows pointed at the right source.
Check The Optional Component Policy
On managed devices, this policy is often the real blocker. It controls where Windows is allowed to download feature payloads and repair content.
- Open Group Policy Editor — Press Win+R, type gpedit.msc, then press Enter.
- Find the policy — Go to Computer Configuration > Administrative Templates > System, then open “Specify settings for optional component installation and component repair.”
- Allow direct download — Set it to Enabled, then tick “Download repair content and optional features directly from Windows Update instead of WSUS.”
- Refresh policy — Run gpupdate /force in an elevated Command Prompt, then reboot.
If your PC is owned by your employer, check with your IT team before changing policy. Some orgs require WSUS for compliance, and you may need them to add FoD packages to their update flow instead.
Fix The WSUS Registry Switch That Blocks Feature Downloads
Some devices are set to use WSUS by registry and will keep doing so even when you try to install a feature. Temporarily switching to Microsoft’s servers can clear the install, then you can switch back.
- Open Registry Editor — Press Win+R, type regedit, then press Enter.
- Go to the update policy path — Navigate to HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU.
- Set UseWUServer to 0 — If UseWUServer exists, set it to 0. If it doesn’t exist, your device may be controlled by policy instead.
- Restart update services — Reboot, or restart the Windows Update service, then retry the feature install.
When the feature is installed, you can restore the original value if your setup needs WSUS. On domain-joined devices, the policy may revert it at the next refresh.
Repair Windows Servicing So Feature Payloads Can Install
If the device is not forced through WSUS, error 0x800f0954 can still show up when the servicing stack is unhealthy. These steps repair component metadata and reset update plumbing without wiping your apps.
Run System File Checker And DISM
- Open an elevated terminal — Right-click Start, pick Windows Terminal (Admin) or Command Prompt (Admin).
- Run SFC — Type sfc /scannow and let it finish.
- Run DISM repair — Type DISM /Online /Cleanup-Image /RestoreHealth, then wait for completion.
- Reboot and retry — Restart Windows, then enable the feature again.
Check For Policy And Download Path Clues
If the error pops only on a work laptop, confirm what rules are applied before you change services or registry paths. A fast way is to generate a policy report and scan it for Windows Update and servicing items.
- Run a policy report — In an elevated terminal, run gpresult /h %temp%\policy.html, then open the file in a browser.
- Scan for WSUS settings — Look for lines that mention an internal update server, WSUS, or “Specify settings for optional component installation and component repair.”
- Test off VPN — Disconnect VPN, retry the install, then reconnect. Many VPN profiles block Microsoft update endpoints by design.
If the policy report shows the optional component setting is enabled with WSUS enforced, your best next step is the Group Policy fix earlier in this article, or an offline install that uses approved media.
Reset Windows Update Components
If DISM completes but feature installs still fail, reset the update cache and related services.
- Stop update services — In an elevated terminal, run: net stop wuauserv, net stop bits, and net stop cryptsvc.
- Rename cache folders — Rename C:\Windows\SoftwareDistribution to SoftwareDistribution.old, and C:\Windows\System32\catroot2 to catroot2.old.
- Start services again — Run: net start cryptsvc, net start bits, and net start wuauserv.
- Run an update scan — Open Windows Update and click “Check for updates,” then try the feature install again.
This reset does not remove installed updates. It clears downloads and rebuilds the catalog, which is often enough to stop error 0x800f0954 from repeating.
Install The Feature Offline When Downloads Are Blocked
Offline installation is the cleanest route when your network blocks Windows Update endpoints or when a device is air-gapped. It also works well for .NET Framework 3.5, since Microsoft ships its payload on Windows install media.
Use A Windows ISO For .NET Framework 3.5
- Get matching media — Download a Windows ISO that matches your Windows version and language.
- Mount the ISO — Double-click the ISO so it shows as a new drive letter.
- Locate the SxS folder — Open sources\sxs on the mounted drive.
- Run DISM with a source — In an elevated terminal, run: DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:X:\sources\sxs and replace X with your drive letter.
- Reboot — Restart, then run the app that required .NET 3.5.
If you see a source mismatch error, your ISO likely doesn’t match your build. Grab the ISO for the same release channel and language, then run the command again.
Offline Options For RSAT And Other Capabilities
RSAT and many Features on Demand are not stored in sources\sxs. For those, you either allow direct download from Windows Update, or you install from FoD media provided by Microsoft for enterprise deployment.
- Use Features On Demand ISO — Admins can use FoD media and DISM capability commands to add RSAT and language features without internet access.
- Install on a network that allows Windows Update — If you can connect briefly to a network that can reach Microsoft endpoints, install the capability, then return to the restricted network.
- Ask IT to publish FoD content — In WSUS or Configuration Manager setups, FoD packages can be added so clients can install without bypass settings.
Prevent The Error From Coming Back
Once the feature is installed, spend a few minutes to reduce the odds of seeing 0x800f0954 error again. These steps are light-touch and work for both home and managed PCs.
- Keep Windows Update healthy — Install monthly quality updates on schedule. Feature installs piggyback on the servicing stack.
- Leave the policy consistent — If you changed Group Policy or registry to bypass WSUS, document it and set it back if your org requires WSUS.
- Avoid half-finished upgrades — If a feature update is pending, finish it before adding optional features.
- Use the right install media — Match build, edition, and language when installing from ISO sources.
- Check proxy and DNS rules — If your network uses a proxy, confirm Windows Update endpoints are allowed, since feature payloads use the same path.
A final habit that helps is to install optional features right after Patch Tuesday updates, not mid-cycle, since servicing files are freshest and fewer pending actions are sitting in the queue.
If you hit error 0x800f0954 again after a clean fix, check what changed: a new policy, a new VPN profile, a new proxy rule, or a new security agent update. Those are the usual culprits.
When To Stop And Hand It To IT
Some systems are locked down for a reason. If you’re on a domain-joined device, or you see management banners in Settings, the safe move is to ask IT for the approved path. They can confirm whether your WSUS setup includes Features on Demand and language packs, or whether your device should download them straight from Windows Update.
Share a simple checklist with them: the feature you’re trying to add, the exact message shown, whether Windows Update itself works, and whether you’re on VPN. With that info, they can set the right policy or provide FoD media, and you can get back to work without fighting the same install loop.
For most personal PCs, the combination of servicing repair, update reset, and offline install solves it. If you want one last sanity check before you walk away, try enabling the same feature after a clean boot. If it works in that state, a third-party service or filter driver is blocking the download path during normal startup.
