Troubleshoot Delivery Optimization
This article discusses how to troubleshoot Delivery Optimization.
DO Troubleshooter
Check out for the new Delivery Optimization Troubleshooter. This tool provides a device health check to verify the device is set up properly to use Delivery Optimization. To scope the output more specifically, use one of the available switches:
- -HealthCheck: Provides an overall check of the device setup to ensure Delivery Optimization communication is possible on the device.
- -P2P: Provides output specific to P2P settings, efficiency, and errors.
- -MCC: Provides output specific to Microsoft Connected Cache settings and verifies the client can access the cache server.
Common problems and solutions
This section summarizes common problems and some solutions to try.
If you don't see any bytes from peers
If you don't see any bytes coming from peers, the cause might be one of the following issues:
- Clients aren't able to reach the Delivery Optimization cloud services.
- The cloud service doesn't see other peers on the network.
- Clients aren't able to connect to peers that are offered back from the cloud service.
- None of the computers on the network are getting updates from peers.
Clients aren't able to reach the Delivery Optimization cloud services
Try these steps:
- Start a download of an app that is larger than 50 MB from the Store (for example "Candy Crush Saga").
- Run
Get-DeliveryOptimizationStatus
from an elevated PowerShell window and observe the DODownloadMode setting. For peering to work, download mode should be 1, 2, or 3. - If the download mode is 99, it could indicate your device is unable to reach the Delivery Optimization cloud services. Ensure that the Delivery Optimization host names are allowed access: most importantly *.prod.do.dsp.mp.microsoft.com.
The cloud service doesn't see other peers on the network
Try these steps:
- Download the same app on two different devices on the same network, waiting 10 - 15 minutes between downloads.
- Run
Get-DeliveryOptimizationStatus
from an elevated PowerShell window and ensure that DODownloadMode is 1 or 2 on both devices. - Run
Get-DeliveryOptimizationPerfSnap
from an elevated PowerShell window on the second device. The NumberOfPeers field should be nonzero. - If the number of peers is zero and DODownloadMode is 1, ensure that both devices are using the same public IP address to reach the internet (you can easily do this by opening a browser window and do a search for "what is my IP"). In the case where devices aren't reporting the same public IP address, configure DODownloadMode to 2 (Group) and use a custom DOGroupID (Guid).
Note
Starting in Windows 10, version 2004, Get-DeliveryOptimizationStatus
has a new option -PeerInfo
which returns a real-time list of potential peers per file, including which peers are successfully connected and the total bytes sent or received from each peer.
Clients aren't able to connect to peers offered by the cloud service
Try a Telnet test between two devices on the network to ensure they can connect using port 7680. Follow these steps:
- Install Telnet by running
dism /online /Enable-Feature /FeatureName:TelnetClient
from an elevated command prompt. - Run the test. For example, if you're on device with IP 192.168.8.12 and you're trying to test the connection to 192.168.9.17 run
telnet 192.168.9.17 7680
(the syntax is telnet [destination IP] [port]. When you see a connection error or a blinking cursor like this /_. The blinking cursor means success.
Note
You can also use Test-NetConnection instead of Telnet to run the test. Test-NetConnection -ComputerName 192.168.9.17 -Port 7680
None of the computers on the network are getting updates from peers
Check Delivery Optimization settings that could limit participation in peer caching. Check whether the following settings in assigned group policies, local group policies, or MDM policies are too restrictive:
- Minimum RAM (inclusive) allowed to use peer caching
- Minimum disk size allowed to use peer caching
- Enable peer caching while the device connects using VPN.
- Allow uploads when the device is on battery while under the set battery level