Windows System Errors
Feature Source Unreachable
0x800F0906Reviewed for reference consistency: August 11, 2026
servicing could not download the optional feature payload
What 0x800F0906 Means
The 0x800F0906 error on the Windows System Errors indicates feature source unreachable — servicing could not download the optional feature payload. This typically occurs due to the client cannot reach windows update to fetch the feature's payload.
Optional features such as .NET Framework 3.5 are not stored on disk by default, and when servicing cannot fetch their payload the request fails with 0x800F0906. Microsoft's .NET Framework 3.5 installation guidance records the message — 'The source files could not be downloaded' — and attributes the code to the machine being unable to download the required files from Windows Update.
How to fix 0x800F0906
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.
Inspect the feature's state before installing
Get-FeatureInfo reports whether the feature is enabled, disabled, or partially staged without changing anything.
Dism.exe /Online /Get-FeatureInfo /FeatureName:NetFx3Confirm the feature's recorded state
The optional-feature listing shows whether NetFx3 is enabled, disabled, or partially staged without changing anything.
Get-WindowsOptionalFeature -Online -FeatureName NetFx3 | Select-Object FeatureName, State
Technical Background
Features-on-demand flips the usual servicing assumption: the payload is not on the machine, so a successful install requires a successful download. The code marks the point where that contract breaks — the feature was identified, the install was requested, and the content could not be obtained. The guidance frames the two remedies around the same fact: restore the path to Windows Update, or supply the payload locally from installation media using the source option.
The code sits at the head of the documented .NET 3.5 failure family, ahead of 0x800F081F (source files not found) and 0x800F0907 (policy blocked the download with no alternative source). The distinctions matter for remediation: 0x800F0906 is primarily a connectivity verdict, while its siblings shift attention to media availability and Group Policy respectively.
Common Causes
- The client cannot reach Windows Update to fetch the feature's payload
- Proxy or firewall policy blocks the required download endpoints
- Policy restricts optional component installation without providing an alternative source
Typical Scenarios
- DISM /Online /Enable-Feature for the NetFx3 feature fails because the machine cannot download the payload
- Installing .NET Framework 3.5 through Windows Features stops with 0x800F0906 on a proxy-protected network
- An offline or restricted environment requests the feature with no installation media supplied as a source
What to Know
Whether the machine can reach the update endpoints at all decides between the two documented remedies — repairing the download path or pointing the feature install at media with the source option.
Frequently Asked Questions
Common questions about Windows 0x800F0906 error
The .NET 3.5 troubleshooting article records 'The source files could not be downloaded. Use the 'source' option to specify the location of the files that are required to restore the feature.'
Both are source-availability failures. 0x800F0906 marks a failed download attempt from Windows Update; 0x800F081F (CBS_E_SOURCE_MISSING) marks servicing being unable to find the source files it needed, typically with a local or offline source in play.
Windows trims optional features to keep installations small. .NET Framework 3.5 and similar payloads are fetched on demand from Windows Update or supplied from installation media, which makes their installs download-dependent.
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.