Troubleshooting SCCM and BITS Downloads

By , January 9, 2009 11:58 am

If you’re planning on using System Center Configuration Manager 2007 for its ability to distribute software over the internet and throttle large file transfers to avoid saturating the network, you may end up spending a lot of time scratching your head when packages start downloading to a client and then suddenly stop.

Such was the scenario I experienced while testing BITS with one of the applications we plan to deploy to clients. The client machine would begin the transfer and start the download… and then stop. Even worse, the issue never resolved itself, even when the machine was left running overnight. Since the issue was less-than-obvious (hint: It was not SCCM that was misconfigured) I decided to list a few tips in the BITS troubleshooting process that may be of use to others.

Looking at the Client

SCCM has no shortage of logs, but I have found that the useful information in them is often poorly filtered, poorly described, and generally difficult to find. This is especially true with many of the BITS issues. Here are a few places to look:

C:\Windows\System32\CCM\Logs\DataTransferService.log – This is probably where you’re going to find an error. However, if you’re expecting it to jump out at you because you’re using the Trace32 tool, you may be surprised. Look for an error containing something like: CDTSJob::JobError : DTS Job ID= { GUID } . If you receive this error, you can be fairly sure that the transfer failed. You won’t get much more out if it.

Bitsadmin /list /allusers – Bitsadmin is a useful utility for manipulating and troubleshooting BITS transfers. Open up a command prompt and type bitsadmin /list /allusers or bitsadmin /list /allusers /verbose > bitslog.txt. If you see your SCCM jobs stuck in an error state, you can be sure that something went awry. Your first instinct may be to try and delete or reset the jobs using bitsadmin /reset /allusers. However, I’ve found that this command is rarely successful. Like the logs, this utility seems to only be good for getting a diagnosis.

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\BITS – If you tried both of the command above and you think BITS is working, perhaps the client is using BITS download settings that are too low. These settings can be configured using ConfigMgr, but I’ve found that there is a delay between when this is set and when clients actually apply the settings (I’m still not sure exactly how long).BITS Settings

First, check in ConfigMgr to see how BITS is configured for clients: Site Management -> <Site Code> -> Site Settings -> Client Agents -> Computer Client Agent -> Right Click and select Properties. On the BITS tab, look at the throttling window and the transfer rates both inside and outside of the throttling window. If either is set below 500Kbps, your file transfers are going to be VERY slow at certain times. Depending on your network infrastructure and client roaming, set it to something reasonable. For testing, I set mine to 5000 Kbps during business hours.

But what if your settings seem reasonable or you applied the settings and it still doesn’t seem to work? As I mentioned above, clients don’t seem to apply these settings immediately. On a client, open up regedit and verify the settings. If they don’t match the ConfigMgr settings, try changing them, then restart the BITS service and watch your network bandwidth for a consistent spike in traffic that is, hopefully, your package. You may also have to re-run your advertisement.

Another possible culprit of misconfigured BITS are Active Directory Group Policy settings. Use this link for more information about the BITS settings found in GPOs.

On the Distribution Point

With BITS, you have to remember that, in simple terms, you’re downloading files from an over-glorified website. That means that your file transfers are dependent on the IIS instance running on the distribution point. With that in mind, the main place to look for errors are the IIS logs. In Windows Server 2008, look in C:\inetpub\logs\LogFiles\W3SVC1 for the newest log file. With BITS transfers, all of the file downloads get logged through IIS (by default, at least) just like regular web pages. In the logs you should see files and paths that match those contained in your failing software package. You will want to scan the log for culprit files, such as any file that produces a 404 error. Typically, the BITS transfer stops after only a few file download attempts when a 404 error is encountered. The culprit file will likely be towards the end of a large group of file requests.

If you find a 404 error in the logs,  look at the number after it. Is it 7 or 11? In this case you have a 404.7 or 404.11 error that is breaking your transfer to “BITS” (pun intended). This is caused by a filename or extension being blocked by IIS. Use this KB article for more details and for a workaround: . File extension filters can be changed by modifying the <requestFiltering> section in %windir%\System32\inetsrv\config\applicationHost.config. A restart of IIS may be required.

That’s all of my BITS troubleshooting tips for now. I will update this article if I find more troubleshooting tips that may be useful to the masses. Happy troubleshooting!

28 Responses to “Troubleshooting SCCM and BITS Downloads”

  1. James O'Farrell says:

    This was a very useful article, thank you

  2. Stein Anensen says:

    Really great article, best I’ve seen on the subject. Helped me out with my BITS problems.

  3. Ulrik says:

    Thanks mate!

    Very informational, and very helpfull. In my case I was trying to transfer a file with a + in the filename, resulting in a “double escape sequence”.

    Following your guide and some links finally solved this one!

    Thanks again.

  4. Sammy Barras says:

    Hello, thank’s a lot for your article, it was really helpfull to solve a slowness problem in the download step. In my case, it was the BITS service who was configurerd to limite the transfer rate to 20kb/s.

  5. park says:

    Very useful article. Thanks!!

  6. [...] some searching I found this article from Matthew Boyd which pointed me to the fact that this was an IIS problem and not a SCCM problem. [...]

  7. NoahJ says:

    This article was an awesome troubleshooting tool. It hit all the right points and got our package distribution issues resolved within minutes of reading it. Keep up the fine work!

  8. c0vert00ps says:

    Thanks for the tips my man… I was sitting at 20kbps as well.

  9. [...] found a really good blog about troubleshooting SCCM and BITS downloads you are having trouble with certain packages downloading, a good log to look at is the latest [...]

  10. bmac000 says:

    great article, it helped me solve slow downloading of an advertised package as my bits rate was set at 200kbps, I increased this to 5000kbps and all is working fine now. thanks

  11. Rikkos says:

    Excellent article, ran into SCCM problems myself, programs would stop downloading after a few percents.
    Turned to be a .mdb file that needed to be downloaded and was blocked in the applicationHost.config file.
    Removed the line from the file, restarted IIS and Bang, worked like a charm.

  12. CVos says:

    This is an awesome article. I was struggling with the distribution of a package and this article lead me to the solution. Thanks a lot!

  13. [...] Beitrag “Troubleshooting SCCM and BITS Downloads” liefert Matthew Boyd weitere Hinweise und Tipps zur Lösung von Problemen aus diesem Umfeld. Keine [...]

  14. Craig says:

    I cant get this to work. I look at the Content Transfer Manager log and all I get is CTM Job suspended. I turned BITS off

  15. Clive W. says:

    I traced a problem with error 404.8, this is because the hiddensegment section of IIS filtering contains an entry for “Bin” this stops the bin folders of your application from downloading and causes bits to fail.
    You should note it dosn’t appear in the filtering tools within IIS 7.X so you have to remove it out of the ApplicationHost.config file.
    Once removed and IIS was restarted the download application downloads worked fine.

    Additional help can be found here

  16. Nickolaj says:

    This helped me with alot, thanks!

  17. Ewa says:

    As many before me…. thank YOU for this article. It was very helpful.

  18. [...] and restarted, it hangs again, although at a different percentage of the download. Following this post quickly turned me to the ApplicationHost.config file, where i had to allow another filetype to be [...]

  19. Lo says:

    Thanks for a wonderfull guide :D

  20. tobewah says:

    If you’re seeing 404.8 errors in the log then it’s the section of your IIS7 applicationHost.config that needs looking at. My package had a folder called “bin” which is blocked by default. See the last section of and more info here

  21. tobewah says:

    My previous reply was supposed to start: If you’re seeing 404.8 errors in the log then it’s the “hiddenSegments” section…

    Only I put hiddenSegments in between pointy brackets so it got stripped out!

  22. JOcken says:

    Great article! Thank you!

  23. Ciccio says:

    Really really useful explanation. It saved me hours of banging my head into my desk! Thanks

  24. [...] March 29, 2012 in SCCM 2007, System Center Configuration Manager by Jay Connor   I found a really good blog about troubleshooting SCCM and BITS downloads [...]

  25. Michel Botelho says:

    Excelent! this article solved my problem!

  26. MIsterD says:

    Thanks, saved me a lot of work too :) much appreciated

  27. Dave White says:

    Excellent article. Helped me resolve a stalled download with a “+” character and a BIN folder!

  28. Steve says:

    Thanks very much for taking the time to publish these troubleshooting steps, very useful.

Leave a Reply

Panorama Theme by Themocracy