Application installation randomly fails in SCCM task sequence

Working on the new Windows 1903 deployment, our goal is to deliver a faster and more clean deployment task sequence. We stripped some unnecessary tasks and changed the order of tasks. Because we’re in the development phase, we keep changing things on the fly. But last week, we experienced a strange problem. Applications would randomly fail to install.

Some would succeed, some would not and those who failed, failed on different applications. The situation felt random and therefore hard to point out where it could go wrong. I started with some basic troubleshooting, but could not get my head around it.

What Google said

Multiple things.

Someone had the feeling that the power settings in Windows PE would be the issue. Replies were: “Have you tried turning it off and on again?” Did not had the feeling that these guys were going to solve my problem.

According to this TechNet page, the SSD would let it fail. Suggested solution is to built a 60 second delay in your task sequence before installing applications. Because the SSD is to fast (Lol). Okay, not the preferred solution, because it feels like working around the real problem. And besides that, the article was from 2014. Microsoft should have fixed this in 2019.

The solution

And suddenly everything came together. I tried the 60 second delay, and for some reason it worked. My analysis was that the system had time to prepare itself to resume the task sequence. I compared the 1703 production deployment with our 1903 deployment and one thing got my attention.

Drivers would be applied after the installation of all the applications. Including storage drivers and all that other stuff that is necessary to make Windows function properly. I changed the order to let the task sequence install drivers first, and install applications after. Solved.

My guess is that Windows would try to install built-in drivers from the internal driver store, and that reads/writes would be interrupted because of that. But it’s not worth the time to investigate. All that maters, is that you do not ever use stupid workarounds for anything. Like adding 60 second delays.