Employees using our managed workstations have recently encountered issues installing Windows 11 language packs FOD. While the language packs install without a hitch, additional features such as Basic typing, handwriting, and text-to-speech fail to install across all attempted languages. In this post I will explain the cause of the problem and provide a solution.
Problem
The screenshot below shows the specific problem employees faced while trying to install additional language packs, displaying the error code: 0X800F0954.

To manage Windows updates using Microsoft Configuration Manager but install Language Packs and other Features on Demand (FoD) directly from Microsoft online, you need to configure the Group Policy outlined below.

This policy setting will generate the following registry key:
Registry Hive | HKEY_LOCAL_MACHINE |
Registry Path | Software\Microsoft\Windows\CurrentVersion\Policies\Servicing |
Value Name | RepairContentServerSource |
Value Type | REG_DWORD |
True Value | 2 |
We have already activated this policy, yet the error persists. Why does this error continue to occur even when the policy is configured to install FOD components from Microsoft online?
Cause
Apparently there is a software update deployment issue in the Microsoft Configuration Manager client we were running on devices with this error, version 2309.
Features on Demand, such as the .NET 3.5 Framework, Optional Features like the Remote Server Administration Tools (RSAT), and Language Packs, are failing to install on Configuration Manager clients.
Features on Demand encounter installation errors 80d02002 or 800F0954, while Optional Features and Language Packs fail without displaying a specific error code.
The root cause of these problems is that Configuration Manager configures the policy to use Windows Server Update Services for specifying the source service for certain classes of Windows Updates. Consequently, the registry keys below are all set to a value of 1.
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate.

Solution
Setting the value of SetPolicyDrivenUpdateSourceForFeatureUpdates to 0 addresses the problem encountered during the installation of on-demand features such as language packs for handwriting and others. As a workaround, it is recommended to adjust this value to 0 prior to installing the language packs.
After setting the value to 0 the FOD download will proceed without an error:

Nevertheless, this value will reset to 1 after a specific period or following a gpupdate cycle. To permanently resolve this issue on all devices, Microsoft has issued a hotfix: Config Manager version 2403, hotfix KB28458746.
https://learn.microsoft.com/en-us/mem/configmgr/hotfix/2403/28458746#summary-of-kb28458746
After installing Microsoft Configuration Manager version 2403, applying the hotfix KB28458746, and enabling the latest Client version in production, the registry keys will no longer be created during a clean Windows installation. However, you will still need to remove the registry keys on existing devices that are already in use. Check out these steps on how to install this hotfix.
Remediation
I have published an export of 2 configuration items and baselines that you can import in your Config Manager console and then deploy to a device collection.
To change the regkey SetPolicyDrivenUpdateSourceForFeatureUpdates to the value 0 until you upgrade your Configuration Manager site server to version 2403 and the required hotfix, you can download this zip and extract it.
After you have upgraded the Config Manger Site server to the required version and hotfix you can download this zip and extract it. This export of a configuration file and baseline removes al of the created registry keys:
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate.
- SetPolicyDrivenUpdateSourceForDriverUpdates
- SetPolicyDrivenUpdateSourceForFeatureUpdates
- SetPolicyDrivenUpdateSourceForOtherUpdates
- SetPolicyDrivenUpdateSourceForQualityUpdates
Follow the next steps how to import a downloaded cab file.
Place the extracted cab file on a location so that you can import it in your Config Manager console.
In your Config Manager console go to: \Assets and Compliance\Overview\Compliance Settings\Configuration Items.
Right click in the right screen and select Import Configuration Data.

Click Add.

Select the extracted cab and click Open.

Click Yes.

Click Next >

You will see the import will create the Configuration Item AND the Baseline. Click Next >

Click Close.

Now you can deploy the Configuration Baseline to a device collection.

Check Remediate noncompliant rules when supported and Allow remediation outside the maintenance window.
Browse to the collection you want to deploy and set the evaluation schedule for the baseline.

Conclusion
To fix the issues with the FOD LP features you can change the registry key:
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate
SetPolicyDrivenUpdateSourceForFeatureUpdates to the value 0
But because it will change back to 1 you can create a Configuration item and baseline to remediate this every 1 hour with the cab file included in this post.
To permanently fix the issue you have to upgrade your Config Manager version to 2403, including the hotfix KB28458746 and promote the client in production. After this is done you can remove the regkeys:
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate
- SetPolicyDrivenUpdateSourceForDriverUpdates
- SetPolicyDrivenUpdateSourceForFeatureUpdates
- SetPolicyDrivenUpdateSourceForOtherUpdates
- SetPolicyDrivenUpdateSourceForQualityUpdates
You can remove the registry keys with a Configuration item and baseline with the cab file included in this post.
The registry keys won’t come back after removing them and when installing a new device with Windows the config manager client also won’t create them anymore.