Process completed with exit code 4294770688, Unknown error (Error: FFFD0000; Source: Unknown)

By | September 20, 2017

Noticed today same error message shows up in all machines that running the same Task Sequence:

Process completed with exit code 4294770688,
Unknown error (Error: FFFD0000; Source: Unknown)

I have tested the same Task Sequence like hundred times, and I am sure there is not issue with the source package itself. So what went wrong? I spent about two hours figured it out, it is kind of my mistake, I would like to let everyone know about it. Don't make the same mistake as I did!

I made a sample Task Sequence to show you what went wrong. In this Task Sequence I have only two steps.

1. Download Package Content. In this step I staged Package "Custom Scripts" (PackageID: ZIT00012) in Task sequence working directory, and save path as a variable.

2. Run PowerShell Script. In this step I run a PowerShell script what is in the same package "Custom Scripts" (PackageID: ZIT00012), so same package as in step 1.

Scenario 1 (worked, no error):

When I was testing the task sequence to my test collection, I used this setting: Deploy to machine collections with Deployment options: Download content locally when needed by the running task sequence

Scenario 2 (Process completed with exit code 4294770688, not working) :

In production, task sequence was deployed using this setting: Download all content locally before starting task sequence

Why scenario 2 failed? This is what happened:

  1. Download all content locally before starting task sequence. When you run the task sequence, it will first download all the packages in your task, then start to run it. In this case, it downloaded Package "Custom Script" to folder C:\Windows\ccmcache\2y before kicks off Task Sequence progress.
  2. After contents are downloaded, task starts, in the task step Download Package Content, package "Custom Script" is staged into Task sequence working directory, so it moved (not copy) contents from C:\Windows\ccmcache\2y to C:\_SMSTaskSequence\Packages\ZIT00012.
  3. Folder C:\Windows\ccmcache\2y became empty.
  4. Because package "Custom Script" contents were supposed to be already downloaded to folder C:\Windows\ccmcache\2y, task is not going to check it and re-download it again, so task step Run PowerShell Script tried to run a script from folder C:\Windows\ccmcache\2y.
  5. Step Run PowerShell Script failed, because folder C:\Windows\ccmcache\2y is empty, cannot find the source script file.
  6. If retry run task sequence again, it will failed again, unless your clean up client cache or fix your task sequence.

How to avoid this? There are few options that I can think of this moment:

(Read first this article written by Peter van der Woude

  1. Stage contents to Configuration Manager client cache.
  2. If you don't want stage contents to Configuration Manager client cache (if contents are staged to Task sequence working directory, content folder is automatically cleaned up after task finished), then don't use any step that will use the same package, or use variable instead.
    Example: if want to run PowerShell script, don't use Run PowerShell Script step, use Run command line instead, in my case:

    %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File "%CustomScripts01%\DumpVar.ps1"

  3. Don't use "Download all content locally before starting task sequence". But in many case we want workstation download all contents before starting run task sequence, no one wants to wait.... 

How to fix this? I have been over a week fixing this, here are my results. (Of course first need correct task sequence steps)

  1. Manual clean up client cache.
  2. Make a copy of your collection, deploy task sequence to the new collection with same settings, then remove the old collection.
    Note: be careful with reporting, depends how you build your custom report, once remove the old collection, deployment history will be gone. 

Leave a Reply

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