I had to troubleshoot a problem where a Task Sequence return the error Failed to Run Task Sequence. SMSTS.log shows : Failed to resolve selected task sequence dependencies 0x80040104
Not big of a deal, this error oftently occurs. It just means that some package referenced by a task sequence is not distributed to the distribution point. This should be an easy fix… well not in this case.
When reading SMSTS.log we can find the problematic package ID. In this case KR100048 was the bad guy.
So I did the basic troubleshooting in those cases :
- Open the SCCM Console
- Navigate to Software Library\Operating Systems\Task Sequences
- Click Reference tab at the bottom
- Locate the problematic ID (KR100048)
- Note the package Name (Windows x64 – HP ProBook 650 G1)
First problem : the Size column is 0.00MB ?!? I immediately thought that I’ve probably forgot to distribute this package on my distribution point.
- Navigate to Software Library\Operating Systems\Driver Packages
- Select the problematic package
- Check distribution status
Surprise, it’s distributed ! I immediately thought that I had not drank enough coffee… ok maybe not.
I decided to go to my Task Sequence and disable the step that reference to this driver package.
Launch a new test, reboot my VM… Boom ! Same error in SMSTS.log (Failed to resolve selected task sequence dependencies 0x80040104) … but on a different driver package. So I disabled this one too… and another, and another…*fast forward 15 min later*… I ended up disabling all my driver packages except for 2 that didn’t gave the error if I kept it enabled.
Interesting. As I am a curious guy, I had to understand this one. So I next decided to check in the SCCM database the difference between all the “non working” and the “working” driver packages.
Analyzing the SMSPackage table, I found some discrepancies :
Some driver packages has no value in NewHash and SourceSize (explaining the 0MB size in the console). The ones with no value are the problematic one.
I yet need to understand why some has values and other don’t as they’ve all been created the same way.
- Right click the Drivers node in the SCCM console and choose Import
- On the Add Drivers To Package step create a new package and uncheck the box Update distribution points when finished
- Complete the import of the drivers
- Repeat for all models
- Select all driver packages that has just been created
- Right click Distribute Content
- Select my distribution points
- Wait for the distribution to complete
I really doubt about the Update distribution points when finished check box so I decided to import a new driver and Check that box to see if the NewHash and SourceSize will be populated.
Running the same query to see if the database is updated :
Let’s see what’s the console is saying about the content :
Obviously, it’s not distributed as I haven’t choose any DP.
So to resume, the NewHash and SourceSize is updated by the Update distribution points when finished check box from the import driver wizard or by the Update Content command from the console. It’s mandatory to use one of both before using this driver package into a Task Sequence. A simple Distribute Content is not enough and your Task Sequence will fail.
The resolution for now :
#1 – Just update the content on the problematic driver package. After updating 1 problematic package, you can see that the database gets correctly updated
#2- Or always check the Update distribution points when finished check box when importing a new driver into a new driver package
This is a product bug as we expect to have the right information in the SCCM console. Don’t tell me that it’s distributed if it’s not ! 🙂
I have created a Connect feedback about this issue and update this post when I have something new to share.