Windows System Errors
Feature Blocked by WSUS
0x800F0954Reviewed for reference consistency: August 11, 2026
feature installs are routed to a server without the payload
What 0x800F0954 Means
The 0x800F0954 error on the Windows System Errors indicates feature blocked by wsus — feature installs are routed to a server without the payload. This typically occurs due to the client's update policy points feature installs at a wsus server that hosts no features-on-demand packages.
On machines whose feature installs are routed through WSUS, optional-capability requests can reach a server that carries no such payload, and the failure surfaces as 0x800F0954. Microsoft's troubleshooting record for .NET Framework 3.5 states the condition: the error occurs when an alternative installation source is absent or invalid and the policy specifying optional component installation settings is configured.
How to fix 0x800F0954
General informational guidance, not professional advice. Commands can affect your system or data — back up first and proceed at your own risk. FixerCode is an independent reference, not affiliated with any vendor mentioned.
List the capabilities the machine knows about
The capability inventory shows what is installed and what is available, which frames the failed request before any policy change.
Dism.exe /Online /Get-CapabilitiesLocate the refused feature request in the servicing log
CBS records the feature request that went to the managed source and its refusal; searching for the code locates the exact line.
findstr /C:"0x800f0954" %windir%\Logs\CBS\CBS.log
Technical Background
The routing explains the error's narrowness. Clients honor the update source policy for feature payloads as well as regular updates; when that source is a WSUS server without Features-on-Demand content, the request is answered by a server that structurally cannot fulfill it. The code therefore describes a configuration mismatch between where the client asks and what the asked party holds.
The failure-family context sharpens the reading. 0x800F0906 and 0x800F081F describe source acquisition problems in general; 0x800F0954 is the WSUS-shaped member of the family, and the documented remedy operates on the routing — either the policy that specifies optional component installation or an alternative local source supplied to DISM and the PowerShell feature cmdlets.
Common Causes
- The client's update policy points feature installs at a WSUS server that hosts no Features-on-Demand packages
- The policy specifying optional component installation settings is configured without an alternative repair source
- UseWUServer routing sends Add-WindowsCapability and DISM feature requests to the managed source
Typical Scenarios
- Add-WindowsCapability for RSAT components fails with 0x800f0954 on a WSUS-managed client
- Installing .NET Framework 3.5 or language packs fails because the Features-on-Demand request goes to the WSUS server
- A machine with the optional-component policy configured loses its fallback to Windows Update and cannot fetch the payload
What to Know
The mismatch is between policy and payload: whichever side changes — giving the WSUS server the content, or allowing the client to fall back to Windows Update — resolves the code.
Frequently Asked Questions
Common questions about Windows 0x800F0954 error
The guidance names the pairing: no valid alternative installation source plus a configured 'Specify settings for optional component installation and component repair' policy, which routes feature payload requests to the managed source.
RSAT components and language packs are Windows capabilities delivered through the same Features-on-Demand pipeline as .NET 3.5, so a WSUS server without that content refuses them identically.
Both describe a source lacking requested content. 0x80244019 is the HTTP-404 verdict in the update protocol, while 0x800F0954 is the servicing-side failure when feature payload requests reach a WSUS server without them.
Related Error Codes
Related Errors From Other Categories
Similar error codes documented across different platforms and systems
Git paused the merge because it cannot automatically resolve overlapping changes.
Git aborted the merge to protect uncommitted changes in your working directory.
Git prevented a branch switch because it would overwrite unsaved changes in your working directory.
Git aborted the merge because it would overwrite untracked files in your working directory.