Error 1603: Installation Roll-back - Universal Print Server 7.12 on Windows Server 2012 R2 - C++ 2013 Redistributable

Error 1603: Installation Roll-back - Universal Print Server 7.12 on Windows Server 2012 R2 - C++ 2013 Redistributable

book

Article ID: CTX219767

calendar_today

Updated On:

Description

Inexplicably, the installation of Citrix Universal Print Server 7.12 rolls back with error 1603.

Workflow:
---------------

  1. Installed from Auto-Select and chose Universal Print Server from the features on the Right of the dialog.
  2. Went with all defaults in the installation wizard.
  3. Once the installation was committed, the Windows Installer rolled-back.
This is what was seen in the Summary dialog of the installation.
Installer Summary Dialog

There should be both the 32- and 64-bit Runtime libraries instead of just one of them.
Finish Install Dialog Box showing a failure.


Once the installation rolled back, the Programs Applet in Control Panel looked like this:
Programs Applet with Bad Stuff in it.
Note that the Size field in the installer database might be empty for a component that failed to install correctly.  In our testing we not only witnessed what is pictured above, but also an instance where the 64-bit version of the C++ 2013 Runtime might be present but with no size.  In this case, it did not install at all.

Error Dialogs:
-------------------
Click on Why did this fail?
Why did the Install Fail?


Click on View Details...
Error Id: XDMI:5FD32D0D

Exception:
    Citrix.MetaInstaller.MetaInstallerException Installation of MSI File 'UpsServer_x64.msi' failed with code 'InstallFailure' (1603).
       at Citrix.MetaInstaller.Msi.InstallProduct(InstallationContext context, String msiPath, String parameters)
       at Citrix.MetaInstaller.MsiComponent.Install(InstallationContext context)
       at Citrix.MetaInstaller.InstallationManager.InstallComponent(IInstallableComponent component, InstallationContext installContext)


The event logs might indicate that Universal Print Server was installed, but upon looking at the Services MMC Snap-in (services.msc) that may not be the case.

User-added image

What is missing is the Citrix Universal Print Server service.  

Additionally, looking in the file system of the server under C:\Program Files\Citrix the folder for the server is not present.  What might be present is a folder called XenDsktopPrintServerSetup which contains the installation files as which should have been cleaned up once the installation completes successfully.

Application Event Logs:
-----------------------------
When the failure condition occurs, we will see this progression of MsiInstaller events in the Application Log:

INFO - Event 1033 - MsiInstaller - “Windows Installer installed the product. Product Name: Citrix Diagnostics Facility. Product Version: 7.1.2.0. Product Language: 1033. Manufacturer: Citrix Systems, Inc.. Installation success or error status: 0.”
ERROR - Event 10005 - MsiInstaller “Product: Citrix Universal Print Server -- You must install Microsoft Visual C++ 2013 Redistributable x64 before installing Citrix Universal Print Server"
INFO - Event 11708 - MsiInstaller - “Product: Citrix Universal Print Server -- Installation failed.”
INFO - Event 1033 - MsiInstaller - Windows Installer installed the product. Product Name: Citrix Universal Print Server. Product Version: 7.12.0.29. Product Language: 1033. Manufacturer: Citrix Systems, Inc.. Installation success or error status: 1603."

The first clause in the last event 1033 message (italicized) is not accurate.  When replicating the issue and the sequence of events depicted above, the product did not install correctly.

Installation Logs:
-------------------------
There are three logs of interest generated by the XenDesktop Meta-Installer when installing Citrix Universal Print Server:
  • XenDesktop Installation.log —> "C:\Users\TheDude\AppData\Local\Temp\Citrix\XenDesktop Installer\XenDesktop Installation.log”
  • cdf_x64{randomvalue}.log —> This is a verbose Windows Installer log for the Citrix Diagnostic Facility (CDF) service.  View only if there is an issue installing this service. (Will not be covered here).
  • UpsServer_x64{random value}.log —> This is a verbose Windows Installer log for the Citrix Print Manager Service.
Normally, the XenDesktop Installation Log should read like this:
  • What is being installed (Citrix Universal Print Server) — main product and components.
  • Enumerate what components are Prerequisites (should be both the 32- and 64-bit version of the C++ 2013 Runtime Libraries or Redistributable).
  • Install the Roles, .NET Framework, and the C++ 2013 Runtime libraries if needed.
  • Install the Citrix Diagnostic Facility Service (64-bit) — this allows for code-level logging (CDT Traces) to be taken if needed on the print server.
  • Install Citrix Universal Print Server (64-bit)
  • Installer cleans up and ends the installation.
Below is how is actually read and how it points to an issue.  The XenDesktop Installation Log will tell us that something went wrong in the installation and what components (UpsServer, in this case) were impacted.  Once we look at this log and identify the failing component, we move on to the relevant log for the failing component.

First, Key/Message format:  
Timestamp   :Message
// —> comments added for this article and which do not appear in the logs

[XenDesktop Installation Log]
Component Enumeration:
11:15:30.1004       : XenDesktopSetup:Component 'Microsoft .NET Framework 4.5.2' and dependencies instantiated.
11:15:30.1014       : XenDesktopSetup:Component 'Citrix Diagnostics Facility' and dependencies instantiated.
11:15:30.1034       : XenDesktopSetup:Component 'Microsoft Visual x86 C++ 2013 Runtime' and dependencies instantiated.
11:15:30.1044       : XenDesktopSetup:Component 'Microsoft Visual x64 C++ 2013 Runtime' and dependencies instantiated.
11:15:30.1044       : XenDesktopSetup:Component 'Printing Server Role' and dependencies instantiated.
11:15:30.1044       : XenDesktopSetup:Component 'Citrix Universal Print Server' and dependencies instantiated.

C++ Runtime Library Installation
// Next line indicates that the 64-bit version of the 2013 C++ Runtime Library was found and will be skipped.  Not the version number.
11:21:32.4257       : XenDesktopSetup:Found installed MSI product upgrade code'{3868550C-1532-316A-9EFF-8509A6E92F79}', product code {20C1086D-C843-36B1-B678-990089D1BD44}, version '12.0.40649'

// Now its only going to successfully install the 32-bit version of the 2013 C++ Runtime Library.
11:21:37.8422       : XenDesktopSetup:Starting synchronous process 'D:\Support\VcRedist_2013_RTM\vcredist_x86.exe' with args '/q /log "C:\Users\TheDude\AppData\Local\Temp\Citrix\XenDesktop Installer\Microsoft\vc_runtime_2013_x86.log"'
11:21:47.2159       : XenDesktopSetup:Process completed with error code 0
11:21:47.2169       : XenDesktopSetup:InstallComponent: Installed component 'Microsoft Visual x86 C++ 2013 Runtime'
​…
// Next, it installs the Citrix Diagnostic Facility which ends successfully.
11:21:48.5906       : XenDesktopSetup:About to install MSI File 'D:\x64\Virtual Desktop Components\cdf_x64.msi' using params 'INSTALLLOCATION="C:\Program Files\Citrix" ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="1" MSIRMSHUTDOWN="2"' log file is 'C:\Users\JorgeH-Admin\AppData\Local\Temp\Citrix\XenDesktop Installer\MSI Log Files\cdf_x64476069893.txt'
11:21:48.5906       : XenDesktopSetup:Starting synchronous process 'msiexec' with args '/i "D:\x64\Virtual Desktop Components\cdf_x64.msi" /lv "C:\Users\JorgeH-Admin\AppData\Local\Temp\Citrix\XenDesktop Installer\MSI Log Files\cdf_x64476069893.txt" /quiet INSTALLLOCATION="C:\Program Files\Citrix" ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="1" MSIRMSHUTDOWN="2" CLOUD=False REBOOT=ReallySuppress'
11:21:59.8674       : XenDesktopSetup:Process completed with error code 0
11:21:59.8674       : XenDesktopSetup:Installation of MSI File 'D:\x64\Virtual Desktop Components\cdf_x64.msi' succeeded
​...
// Finally, the installation of UPServer itself which does not end well.
11:22:00.3074       : XenDesktopSetup:About to install MSI File 'D:\x64\Universal Print Server\UpsServer_x64.msi' using params 'INSTALLLOCATION="C:\Program Files\Citrix" ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="1" MSIRMSHUTDOWN="2"' log file is 'C:\Users\JorgeH-Admin\AppData\Local\Temp\Citrix\XenDesktop Installer\MSI Log Files\UpsServer_x643262001.txt'
11:22:00.3074       : XenDesktopSetup:Starting synchronous process 'msiexec' with args '/i "D:\x64\Universal Print Server\UpsServer_x64.msi" /lv "C:\Users\JorgeH-Admin\AppData\Local\Temp\Citrix\XenDesktop Installer\MSI Log Files\UpsServer_x643262001.txt" /quiet INSTALLLOCATION="C:\Program Files\Citrix" ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="1" MSIRMSHUTDOWN="2" CLOUD=False REBOOT=ReallySuppress'
11:22:01.0224       : XenDesktopSetup:Process completed with error code 1603
11:22:01.0244 $ERR$ : XenDesktopSetup:Installation of MSI File 'UpsServer_x64.msi' failed with code 'InstallFailure' (1603).
11:22:01.0264 $ERR$ : XenDesktopSetup:InstallComponent: Failed to install component 'Citrix Universal Print Server'. Installation of MSI File 'UpsServer_x64.msi' failed with code 'InstallFailure' (1603).
11:22:01.0274 $ERR$ : XenDesktopSetup:Recording installation failure. Installation of MSI File 'UpsServer_x64.msi' failed with code 'InstallFailure' (1603).
11:22:01.0274 PROC  : XenDesktopSetup:InstallComponent: Exit

// Note the absence of a “we succeeded” message at the end of the block.
[end XenDesktop Installation Log]

Going to the UpsServerx64___.log to see further details as to why the installation failed…

Key/Message format:  
Timestamp   :Message
// —> comments added for this article and which do not appear in the logs

[UpsServer Installation Log — excerpts]
// Make sure the installation was performed with Admin privileges…  TRUE
MSI (s) (CC:F0) [11:22:00:981]: MSI_LUA: Setting MsiRunningElevated property to 1 because the install is already running elevated.
...
// What is actually being installed...
MSI (s) (CC:F0) [11:22:00:981]: PROPERTY CHANGE: Adding OriginalDatabase property. Its value is 'D:\x64\Universal Print Server\UpsServer_x64.msi’.

// Start of the installation…
MSI (s) (CC:F0) [11:22:00:990]: Doing action: INSTALL

// Installer is performing a Procedure called “LaunchConditions” which we can deduce looks at the prerequisites prior to installing
// binaries and other configuration actions.
MSI (s) (CC:F0) [11:22:00:998]: Doing action: LaunchConditions
MSI (s) (CC:F0) [11:22:00:998]: Note: 1: 2205 2:  3: ActionText
Action ended 11:22:00: AppSearch. Return value 1.
Action start 11:22:00: LaunchConditions.
MSI (s) (CC:F0) [11:22:01:000]: Note: 1: 2205 2:  3: Error
...
MSI (s) (CC:F0) [11:22:01:000]: Product: Citrix Universal Print Server -- You must install Microsoft Visual C++ 2013 Redistributable x64 before installing Citrix Universal Print Server
...
// Return Value 3 = “The system cannot find the path specified.” or something similar
// Installation fails, throws the Error 1603 we see in event logs and windows dialogs, and the installer rolls-back and exits.
Action ended 11:22:01: LaunchConditions. Return value 3.
Action ended 11:22:01: INSTALL. Return value 3.
MSI (s) (CC:F0) [11:22:01:002]: Note: 1: 1708
MSI (s) (CC:F0) [11:22:01:002]: Note: 1: 2205 2:  3: Error

MSI (s) (CC:F0) [11:22:00:997]: PROPERTY CHANGE: Adding VC2013_X86_INSTALLED property. Its value is '12.0.21005’.
...
MSI (s) (CC:F0) [11:22:01:002]: Product: Citrix Universal Print Server -- Installation failed.

MSI (s) (CC:F0) [11:22:01:003]: Windows Installer installed the product. Product Name: Citrix Universal Print Server. Product Version: 7.12.0.29. Product Language: 1033. Manufacturer: Citrix Systems, Inc.. Installation success or error status: 1603.
[end UpsServer Installation Log]​
 

Resolution

Citrix is working on improving its installation package for Citrix Universal Print Server.  This change (which is not a bug, but will have to be treated as an enhancement because it is inherent to the design of the installer package itself) may appear in a future edition of the product.  For now, we have a workaround and recommendations that will help prevent this condition from impacting customers.

Statement
--------------- 
For Citrix Universal Print Server to be installed correctly and for it to work as expected, both the 32- and 64-bit C++ 2013 Redistributable/Runtime Libraries should be version 12.0.21005.1 and should be installed prior to any applications requiring an alternative C++ 2013 Redistributable 12.0.-based version.  In short, if possible, install Citrix Universal Print Server before installing other applications.

Workaround
---------------
The steps taken to work-around the issue were:
  1. Successfully removed the application that installed the C++ 2013 Redistributable v12.0.40649.5.
  2. Installed Citrix Universal Print Server successfully with C++ 2013 Redistributable v12.0.21005.1
  3. Re-installed the application with the C++ Redist.
Result:  both Citrix UPServer and the application work as expected.

An alternative workaround would be to install C++ 2013 Redistributable v12.0.21005.1 from the Support folder of the ISO/DVD or distribution of XenApp/XenDesktop 7.12 before installing Citrix Universal Print Server using AutoSelect.exe or a silent installation method.

Recommendations
-------------------------
Citrix Support recommends customer to be vigilant of what version of the C++ 2013 Redistributable Libraries are on a host before installing any Citrix product.  Thus, it is recommended to:
  • Install Citrix Universal Print Server before other applications that require a C++ 2013 Redistributable version 12.0.xx..
  • Manually install C++ 2013 Redistributable v12.0.21005.1 from the Support folder of the ISO/DVD or distribution of XenApp/XenDesktop 7.12 before installing Citrix Universal Print Server using AutoSelect.exe or a silent installation method.
  • Test an installation or an upgrade of a Citrix Product before that change goes into Production especially when the server has other applications 
  • Note what editions of a C++ Runtime packages or any other Microsoft Redistributable code and test application functionality and performance prior to Production use.  

Problem Cause

The installation of Citrix Universal Print Server would fail/roll-back due to another similar version of the C++ 2013 Redistributable/Runtime Library being present on the server prior to its installation.  Citrix Universal Print Server version 7.12 is dependent on C++ 2013 Redistributable version 12.0.21005.1 being installed successfully on the machine.

Issue/Introduction

Citrix Universal Print Server 7.12 rolls back inexplicably. Cause found to be the version of 64-bit C++ 2013 Redistributable in place from an application installed before UPServer.