Internal Server Error 500 When Downloading Content - Configuration Manager Client

Have you got Configuration Manager clients returning Internal Server Error 500 when trying to download content? This is the post for you. When I first came across this error I spent a lot of time looking for a complicated solution, only to find out it was a really simple fix. I hope this article helps save you some time!

Symptoms

Below are some of the symptoms you might notice if this issue is occurring.

Software Center

In Software Center, the application installation state is stuck at Downloading (0% complete).
Software Center - Downloading

ContentTransferManager.log

ContentTransferManager.log just seems to be stuck attempting to download the manifest.

Persisted locations for CTM job {E5D716EA-7216-4E4A-A2D9-B25EF52BB692}:
(LOCAL) https://BLCM02.breenlab.scottbreen.tech/SMS\_DP\_SMSPKG$/Content\_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd.1 ContentTransferManager 6/09/2016 2:58:11 PM 2264 (0x08D8)
CTM job {E5D716EA-7216-4E4A-A2D9-B25EF52BB692} (corresponding DTS job {8785F7F7-4545-4546-9143-7A796B9C4B4F}) started download from 'https://BLCM02.breenlab.scottbreen.tech/SMS_DP_SMSPKG$/Content_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd.1' for full content download. ContentTransferManager 6/09/2016 2:58:11 PM 2264 (0x08D8)
CTM job {E5D716EA-7216-4E4A-A2D9-B25EF52BB692} entered phase CCM_DOWNLOADSTATUS_DOWNLOADING_MANIFEST ContentTransferManager 6/09/2016 2:58:11 PM 2932 (0x0B74)
CTM job {E5D716EA-7216-4E4A-A2D9-B25EF52BB692} entered phase CCM_DOWNLOADSTATUS_DOWNLOADING_MANIFEST ContentTransferManager 6/09/2016 2:58:44 PM 3032 (0x0BD8)

DataTransferService.log

DataTransferService.log is where you will notice Internal Server Error with a HTTP code of 500.

[CCMHTTP] ERROR: URL=https://BLCM02.breenlab.scottbreen.tech:80/SMS_DP_SMSPKG$/Content_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd.1, Port=80, Options=224, Code=0, Text=CCM_E_BAD_HTTP_STATUS_CODE DataTransferService 6/09/2016 3:08:36 PM 4708 (0x1264)
[CCMHTTP] ERROR INFO: StatusCode=500 StatusText=Internal Server Error DataTransferService 6/09/2016 3:08:36 PM 4708 (0x1264)
Raising event:
instance of CCM_CcmHttp_Status
{
ClientID = "GUID:ba70a6eb-cbad-4d5c-a827-322c53dca678";
DateTime = "20160906050836.637000+000";
HostName = "BLCM02.breenlab.scottbreen.tech";
HRESULT = "0x87d0027e";
ProcessID = 1664;
StatusCode = 500;
ThreadID = 4708;
};
DataTransferService 6/09/2016 3:08:36 PM 4708 (0x1264)
Successfully submitted event to the Status Agent. DataTransferService 6/09/2016 3:08:36 PM 4708 (0x1264)
Successfully queued event on HTTP/HTTPS failure for server 'BLCM02.breenlab.scottbreen.tech'. DataTransferService 6/09/2016 3:08:36 PM 4708 (0x1264)
Error sending DAV request. HTTP code 500, status 'Internal Server Error' DataTransferService 6/09/2016 3:08:36 PM 4708 (0x1264)
GetDirectoryList_HTTP('https://BLCM02.breenlab.scottbreen.tech:80/SMS_DP_SMSPKG$/Content_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd.1') failed with code 0x87d0027e. DataTransferService 6/09/2016 3:08:36 PM 4708 (0x1264)
Job {8785F7F7-4545-4546-9143-7A796B9C4B4F} reverted impersonation. DataTransferService 6/09/2016 3:08:36 PM 4708 (0x1264)
Non-recoverable error retrieving manifest (0x87d0027e). DataTransferService 6/09/2016 3:08:36 PM 4708 (0x1264)

Internet Explorer Test

Whenever I have a problem with content, I like to try and access the URL directly from a browser to see if it's a problem with the client, access in general or the server. If you are using HTTPS this may not be as easy as you would need to provide a certificate to authenticate. But if you are using HTTP, you can copy the content path from DataTransferService.log (highlighted in purple above) and paste it into Internet Explorer to see the results. In this case, I also received Internal Server Error.
Internal Server Error

Solution

The fix.... "ISAPI Extensions" component was missing. ISAPI Extensions is listed as a required by the Distribution Point role according to TechNet. For a full list of requirements, see https://technet.microsoft.com/en-us/library/mt752493.aspx.

To check if the component is missing from your server you can use Server Manager or PowerShell.

Check with PowerShell

To check with PowerShell, run this command:
Get-WindowsFeature Web-ISAPI-Ext

If ISAPI Extensions is installed:
PowerShell ISAPI not installed

If ISAPI Extensions is not installed:PowerShell - ISAPI Extensions Installed

Check with Server Manager

To check with Server Manager:

  • Open Server Manager
  • Select Local Server
  • Scroll down to Roles and Features
  • Look for ISAPI Extensions in the list (or search for it)

If ISAPI Extensions is missing, it's not installed.

If ISAPI Extensions is installed, you will see it listed.
Server Manager - ISAPI Extensions Installed

Install with PowerShell

To install with PowerShell, run this command:
Install-WindowsFeature Web-ISAPI-Ext PowerShell - Install ISAPI Extensions

Install with Server Manager

To install with Server Manager:

  • Open Server Manager, select Manage > Add Roles and Features.
  • Click Next until you get to the Server Roles screen.
  • Expand Web Server > Web Server > Application Development.
  • Tick ISAPI Extensions

Tick IASPI Extensions

What does success look like?

After the ISAPI Extensions role service is installed, you can test the client is resolved by restarting the SMS Agent Host and checking that the content is now downloaded. Otherwise, clients will eventually retry the installation if they haven't already "failed".

Software Center

The application is now installed!
Software Center - Installed

ContentTransferManager.log

Attempting to send Location Request for PackageID='Content_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd' ContentTransferManager 6/09/2016 3:23:09 PM 4040 (0x0FC8)
Created and Sent Location Request '{77FFB2DB-3F27-4788-9762-471FD512EE4F}' for package Content_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd ContentTransferManager 6/09/2016 3:23:09 PM 4040 (0x0FC8)
CTM job {2B609C31-EE94-4FC6-BBE2-9D450E78A155} entered phase CCM_DOWNLOADSTATUS_WAITING_CONTENTLOCATIONS ContentTransferManager 6/09/2016 3:23:09 PM 4040 (0x0FC8)
Queued location request '{77FFB2DB-3F27-4788-9762-471FD512EE4F}' for CTM job '{2B609C31-EE94-4FC6-BBE2-9D450E78A155}'. ContentTransferManager 6/09/2016 3:23:09 PM 4040 (0x0FC8)
Persisted locations for CTM job {2B609C31-EE94-4FC6-BBE2-9D450E78A155}:
(LOCAL) https://BLCM02.breenlab.scottbreen.tech/SMS\_DP\_SMSPKG$/Content\_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd.1 ContentTransferManager 6/09/2016 3:23:09 PM 5416 (0x1528)
CTM job {2B609C31-EE94-4FC6-BBE2-9D450E78A155} (corresponding DTS job {3A9324A4-74F8-4063-B2D7-74EFE9FA2510}) started download from 'https://BLCM02.breenlab.scottbreen.tech/SMS_DP_SMSPKG$/Content_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd.1' for full content download. ContentTransferManager 6/09/2016 3:23:09 PM 5416 (0x1528)
CTM job {2B609C31-EE94-4FC6-BBE2-9D450E78A155} entered phase CCM_DOWNLOADSTATUS_DOWNLOADING_MANIFEST ContentTransferManager 6/09/2016 3:23:09 PM 6004 (0x1774)
CTM job {2B609C31-EE94-4FC6-BBE2-9D450E78A155} entered phase CCM_DOWNLOADSTATUS_PROCESSING_MANIFEST ContentTransferManager 6/09/2016 3:23:10 PM 5920 (0x1720)
CTM job {2B609C31-EE94-4FC6-BBE2-9D450E78A155} entered phase CCM_DOWNLOADSTATUS_PREPARING_DOWNLOAD ContentTransferManager 6/09/2016 3:23:10 PM 5916 (0x171C)
CTM job {2B609C31-EE94-4FC6-BBE2-9D450E78A155} entered phase CCM_DOWNLOADSTATUS_DOWNLOADING_DATA ContentTransferManager 6/09/2016 3:23:10 PM 4844 (0x12EC)
CTM job {2B609C31-EE94-4FC6-BBE2-9D450E78A155} successfully processed download completion. ContentTransferManager 6/09/2016 3:23:10 PM 5924 (0x1724)

DataTransferManager.log

Restarted DTS job '{8785F7F7-4545-4546-9143-7A796B9C4B4F}' in state DownloadingManifest. DataTransferService 6/09/2016 3:22:30 PM 4908 (0x132C)
DTSJob {8785F7F7-4545-4546-9143-7A796B9C4B4F} in state 'DownloadingManifest'. DataTransferService 6/09/2016 3:22:30 PM 4908 (0x132C)
Job {8785F7F7-4545-4546-9143-7A796B9C4B4F} impersonating logged on user. DataTransferService 6/09/2016 3:22:30 PM 4844 (0x12EC)
Detecting if client is on the internet. DataTransferService 6/09/2016 3:22:30 PM 4844 (0x12EC)
Client is not set to use any webproxy. DataTransferService 6/09/2016 3:22:30 PM 4844 (0x12EC)
GET: Host=BLCM02.breenlab.scottbreen.tech, Path=/SMS_DP_SMSPKG$/Content_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd.1, Port=80, Protocol=http, Flags=645, Options=224 DataTransferService 6/09/2016 3:22:30 PM 4844 (0x12EC)
Resending the request by setting the credentials on getting an unauthorized response. DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
Setting autologon policy for integrated auth request. DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
Raising event:
instance of CCM_CcmHttp_Status
{
ClientID = "GUID:ba70a6eb-cbad-4d5c-a827-322c53dca678";
DateTime = "20160906052231.543000+000";
HostName = "BLCM02.breenlab.scottbreen.tech";
HRESULT = "0x00000000";
ProcessID = 5880;
StatusCode = 0;
ThreadID = 4844;
};
DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
Status Agent hasn't been initialized yet. Attempting to create pending event. DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
Raising pending event:
instance of CCM_CcmHttp_Status
{
ClientID = "GUID:ba70a6eb-cbad-4d5c-a827-322c53dca678";
DateTime = "20160906052231.543000+000";
HostName = "BLCM02.breenlab.scottbreen.tech";
HRESULT = "0x00000000";
ProcessID = 5880;
StatusCode = 0;
ThreadID = 4844;
};
DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
Successfully submitted pending event to WMI. DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
UpdateURLWithTransportSettings(): OLD URL - https://blcm02.breenlab.scottbreen.tech/SMS\_DP\_SMSPKG$/sccm?/Content\_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd.1/ DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
UpdateURLWithTransportSettings(): NEW URL - https://blcm02.breenlab.scottbreen.tech:80/SMS\_DP\_SMSPKG$/sccm?/Content\_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd.1/ DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
UpdateURLWithTransportSettings(): OLD URL - https://blcm02.breenlab.scottbreen.tech/SMS\_DP\_SMSPKG$/Content\_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd.1/sccm?/NM34\_x64.exe DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
UpdateURLWithTransportSettings(): NEW URL - https://blcm02.breenlab.scottbreen.tech:80/SMS\_DP\_SMSPKG$/Content\_fe46ebd4-7c29-4f8c-b8b6-c166e0e84ebd.1/sccm?/NM34\_x64.exe DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
Job {8785F7F7-4545-4546-9143-7A796B9C4B4F} reverted impersonation. DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
DTSJob {8785F7F7-4545-4546-9143-7A796B9C4B4F} in state 'RetrievedManifest'. DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
DTSJob {8785F7F7-4545-4546-9143-7A796B9C4B4F} in state 'PendingDownload'. DataTransferService 6/09/2016 3:22:31 PM 5916 (0x171C)
DTSFlag is 0x0040050e DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
Exclude file list: DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
Using branch cache option DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
DTSJob {8785F7F7-4545-4546-9143-7A796B9C4B4F} in state 'DownloadingData'. DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
DTSJob {8785F7F7-4545-4546-9143-7A796B9C4B4F} in state 'RetrievedData'. DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
DTSJob {8785F7F7-4545-4546-9143-7A796B9C4B4F} successfully completed download. DataTransferService 6/09/2016 3:22:31 PM 4844 (0x12EC)
DTSJob {8785F7F7-4545-4546-9143-7A796B9C4B4F} in state 'NotifiedComplete'. DataTransferService 6/09/2016 3:22:31 PM 5916 (0x171C)