SCCM – Office 365 updates stuck downloading 50%: BITS error code 0x80190194

Problem

I have been deploying Office 2016 C2R for 600+ clients moving up from a mix of MSI installs, versions ranging from 2007 to 2013.

In the process of design & testing I came across an issue where Office 365 Client Updates get stuck downloading at 50% with SCCM 1702.

My biggest issue was that this was reproducible across all clients I tried, but it did not impact the downloads of other updates from the SUP, or any other downloads from MP / DP.

I do not believe this is specific to 1702 / 5.00.8498.1711 as I was experiencing the same with 1610 / 5.00.8458.1007.

Solution

I’ll cut to the chase and tell you that removing the TargetVersion attribute from the Updates sub-element of Office Deployment Tool’s configuration XML file was the fix for me. To see if your installation is a victim of this config, check if the key value exists:

HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration\UpdateToVersion

Note that the above key can also exist if you configure Target Version via GPO (Computer Configuration > Policies > Administrative Templates > Microsoft office 2016 (Machine) > Updates > Target Version)

For currently deployed clients with the offending config you need to re-deploy ODT with sources and new XML to reconfigure clients – shouldn’t need to reinstall Office.

If you’re concerned about user experience, consider using Powershell Application Deployment Toolkit.

For help creating an idiot proof XML for ODT, consider using the XML Editor

A bunch of other awesome tools are available in the same repository on GitHub: Office-IT-Pro-Deployment-Scripts.

Rant

I’m disappointed there was nothing documented about the impact of configuring Target Version and OfficeMgmtCOM together, or even a remote hint that this was the issue in log files for SCCM, IIS or BITS.

I think fair expected behaviour would be if it downloaded and installation failed, I was chasing a red herring for too long. Granted wasteful disk space and bandwidth, but at least it would be an opportunity to present a logical flow of events to help someone troubleshooting, or at least an opportunity for the devs to implement an error message!

Troubleshooting

The first place I looked was the BITS log file for SCCM, I also ensured the service was running and restarted it.

DataTransferService.log
UpdateURLWithTransportSettings(): OLD URL - http://example.com/SMS_DP_SMSPKG$/2f7e4773-b935-4288-8b0c-fb819f2e52a4	DataTransferService	24/07/2017 10:17:42	4328 (0x10E8)
UpdateURLWithTransportSettings(): NEW URL - http://example.com:80/SMS_DP_SMSPKG$/2f7e4773-b935-4288-8b0c-fb819f2e52a4	DataTransferService	24/07/2017 10:17:42	4328 (0x10E8)
Added (source=sccm?/Office/Data/v32_16.0.7369.2130.cab,dest=C:\Windows\TEMP\C2RBitsCheckReachable2068A369-FEDC-4A5F-AE75-9645D3FF599C) pair from manifest.	DataTransferService	24/07/2017 10:17:42	4328 (0x10E8)
DTSJob {45A75D08-A11A-4D0C-BCC7-CC588701D276} created to download from 'http://example.com:80/SMS_DP_SMSPKG$/2f7e4773-b935-4288-8b0c-fb819f2e52a4' to ''.	DataTransferService	24/07/2017 10:17:42	4328 (0x10E8)
DTSJob {45A75D08-A11A-4D0C-BCC7-CC588701D276} in state 'PendingDownload'.	DataTransferService	24/07/2017 10:17:42	4656 (0x1230)
DTSFlag is 0x0048018e	DataTransferService	24/07/2017 10:17:42	4856 (0x12F8)
Exclude file list: 	DataTransferService	24/07/2017 10:17:42	4856 (0x12F8)
Not using branch cache option	DataTransferService	24/07/2017 10:17:42	4856 (0x12F8)
Not using branch cache option	DataTransferService	24/07/2017 10:17:42	4856 (0x12F8)
DTSJob {45A75D08-A11A-4D0C-BCC7-CC588701D276} in state 'DownloadingData'.	DataTransferService	24/07/2017 10:17:42	4856 (0x12F8)
CDTSJob::JobError: DTS Job ID='{45A75D08-A11A-4D0C-BCC7-CC588701D276}' BITS Job ID='{79450662-7E68-47D5-B118-1A7F6C43F084}' ErrorCode=0x80190194	DataTransferService	24/07/2017 10:17:42	3844 (0x0F04)
CDTSJob::JobError: DTS Job ID='{45A75D08-A11A-4D0C-BCC7-CC588701D276}' URL='http://example.com:80/SMS_DP_SMSPKG$/2f7e4773-b935-4288-8b0c-fb819f2e52a4' ProtType=1	DataTransferService	24/07/2017 10:17:42	3844 (0x0F04)
DTS job {45A75D08-A11A-4D0C-BCC7-CC588701D276} BITS job {79450662-7E68-47D5-B118-1A7F6C43F084} failed to download source file http://example.com:80/SMS_DP_SMSPKG$/2f7e4773-b935-4288-8b0c-fb819f2e52a4/sccm?/Office/Data/v32_16.0.7369.2130.cab to destination C:\Windows\TEMP\C2RBitsCheckReachable2068A369-FEDC-4A5F-AE75-9645D3FF599C with error 0x80190194	DataTransferService	24/07/2017 10:17:42	3844 (0x0F04)

The Google-able element is line 13 with “0x80190194 DataTransferService” which apparently means HTTP 404. I beg to differ it’s 404 because the URLs do return OK.

bitsadmin

I immediately want to see what BITS thinks is going on using the old bitsadmin utility.

C:\Windows\system32>bitsadmin /list /allusers
BITSADMIN version 3.0 [ 7.8.10240 ]
BITS administration utility.
(C) Copyright 2000-2006 Microsoft Corp.
BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows.
Administrative tools for the BITS service are now provided by BITS PowerShell cmdlets.
{79450662-7E68-47D5-B118-1A7F6C43F084} 'CCMDTS Job' ERROR 0 / 1 0 / 1
Listed 1 job(s).
C:\Windows\system32>bitsadmin /info {79450662-7E68-47D5-B118-1A7F6C43F084} /verbose
BITSADMIN version 3.0 [ 7.8.10240 ]
BITS administration utility.
(C) Copyright 2000-2006 Microsoft Corp.

BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows.
Administrative tools for the BITS service are now provided by BITS PowerShell cmdlets.

GUID: {79450662-7E68-47D5-B118-1A7F6C43F084} DISPLAY: 'CCMDTS Job'
TYPE: DOWNLOAD STATE: ERROR OWNER: NT AUTHORITY\SYSTEM
PRIORITY: FOREGROUND FILES: 0 / 1 BYTES: 0 / 1
CREATION TIME: 24/07/2017 10:17:42 MODIFICATION TIME: 24/07/2017 10:17:42
COMPLETION TIME: UNKNOWN ACL FLAGS: 
NOTIFY INTERFACE: REGISTERED NOTIFICATION FLAGS: 11
RETRY DELAY: 60 NO PROGRESS TIMEOUT: 300 ERROR COUNT: 1
PROXY USAGE: NO_PROXY PROXY LIST: NULL PROXY BYPASS LIST: NULL
ERROR FILE:    http://example.com:80/SMS_DP_SMSPKG$/2f7e4773-b935-4288-8b0c-fb819f2e52a4/sccm?/Office/Data/v32_16.0.7369.2130.cab -> C:\Windows\TEMP\C2RBitsCheckReachable2068A369-FEDC-4A5F-AE75-9645D3FF599C
ERROR CODE:    0x80190194
ERROR CONTEXT: 0x00000005
DESCRIPTION: 
JOB FILES: 
  0 / 1 WORKING http://example.com:80/SMS_DP_SMSPKG$/2f7e4773-b935-4288-8b0c-fb819f2e52a4/sccm?/Office/Data/v32_16.0.7369.2130.cab -> C:\Windows\TEMP\C2RBitsCheckReachable2068A369-FEDC-4A5F-AE75-9645D3FF599C
  Ranges:
    offset 0, length 1
NOTIFICATION COMMAND LINE: none
owner MIC integrity level: SYSTEM
owner elevated ?           true
This job is read-only to the current CMD window because the job's mandatory 
integrity level of SYSTEM is higher than the window's level of HIGH.
Peercaching flags
   Enable download from peers      :false
   Enable serving to peers         :false

CUSTOM HEADERS: NULL

Nothing new, same error code 0x80190194.

I wish I could offer you a turning point in this story, but only more confusion…

CAS.log
Requesting locations synchronously for content 2f7e4773-b935-4288-8b0c-fb819f2e52a4.1 with priority Foreground	ContentAccess	24/07/2017 10:17:40	4656 (0x1230)
sRelatedContentIDs is <RelatedContentIDs><RelatedContentID ID="3e9be19d-3a88-4e59-9e45-ffbf31f80916"/></RelatedContentIDs>. Length = 100.	ContentAccess	24/07/2017 10:17:40	4656 (0x1230)
The number of discovered DPs(including Branch DP and Multicast) is 1	ContentAccess	24/07/2017 10:17:40	4656 (0x1230)
Calling back with the following distribution points	ContentAccess	24/07/2017 10:17:40	4656 (0x1230)
Distribution Point='http://example.com/SMS_DP_SMSPKG$/2f7e4773-b935-4288-8b0c-fb819f2e52a4', Locality='ADSITE'	ContentAccess	24/07/2017 10:17:40	4656 (0x1230)
LocationServices.log
Current AD site of machine is SITECODE	LocationServices	24/07/2017 10:17:40	4656 (0x1230)
Current AD site of machine is SITECODE	LocationServices	24/07/2017 10:17:40	4656 (0x1230)
Current AD site of machine is SITECODE	LocationServices	24/07/2017 10:17:42	4656 (0x1230)
Current AD site of machine is SITECODE	LocationServices	24/07/2017 10:17:42	4328 (0x10E8)
sRelatedContentIDs is <RelatedContentIDs><RelatedContentID ID="3e9be19d-3a88-4e59-9e45-ffbf31f80916"/></RelatedContentIDs>. Length = 100.	LocationServices	24/07/2017 10:17:42	4328 (0x10E8)
Calling back with the following distribution points	LocationServices	24/07/2017 10:17:42	4328 (0x10E8)
Distribution Point='http://example.com/SMS_DP_SMSPKG$/2f7e4773-b935-4288-8b0c-fb819f2e52a4', Locality='ADSITE', Version='8498', Capabilities='<Capabilities SchemaVersion="1.0"><Property Name="SSLState" Value="0"/></Capabilities>', Signature='http://example.com/SMS_DP_SMSSIG$/2f7e4773-b935-4288-8b0c-fb819f2e52a4.1.tar', ForestTrust='TRUE',	LocationServices	24/07/2017 10:17:42	4328 (0x10E8)
Calling back with locations for location request {417B98C9-A0B2-4E53-AB51-0DD11F02A827}	LocationServices	24/07/2017 10:17:42	4328 (0x10E8)

No issues with finding DPs or the content still…

IIS logs oddly logged nothing along the lines of 404 as I was most interested in looking for 404.7 “file extension denied” as there were discussions around the web about URLs containing odd characters (like “+” for C++ redistributables packages) being blocked by the web server, unless you configured IIS otherwise or simply archive the package with a different name, unpack them at the other side and execute.

Leave a Reply

Your email address will not be published. Required fields are marked *