Error 1618 isn’t unique to Java. It is an error from Microsoft Installer (.msi) stating that another .msi is currently being processed. You see, the Microsoft Installer, msiexec.exe, can only process one installation at a time. This error will be encountered when one MSI is attempted to be installed while another is currently processing.
Please keep in mind that this doesn’t necessarily mean that another Java installation is occurring. It means that msiexec.exe is currently processing another .msi installation. This could be one of thousands of other applications that use the Microsoft Installer.
Regardless, let’s look at how we can overcome this when it comes to deploying Java.
Even if you install Java from the EXE you can get this error. The Java install EXE file is really just a bootstrapper for an embedded MSI file.
Here are some steps you can take to work through this issue:
Wait for the current installation to finish.
Kill or stop the current installation.
This could have some bad consequences for whatever was being installed as you could end up with a partially installed or corrupted application.
Reboot the target computer and then reattempt the deployment.
Now if there is a legitimate installation occurring you are better off simply waiting for it to complete. If, however, you consistently get this error then you may want to kill msiexec.exe. We have a Java package in PDQ Deploy that does just that. Step 2 of the Java 8 – Alternate package kills msiexec.exe before proceeding.
If you are using your own Java package then you can create a Command Step and enter the following command:
taskkill.exe /f /im msiexec.exe
Make sure to add error codes 0 and 128 to your Success Codes field. 128 is the taskkill.exe return code when it attempts to kill a process that isn’t running. This should, in most cases, be considered a success which is why you should add it here.
Have this step run before your Java installation step. Once again, please keep in mind that you could kill a legitimate installation by doing this.
Just so you know, PDQ Deploy has built-in protection against running concurrent deployments simultaneously on the same targets. When a PDQ Deploy console is told to deploy multiple packages to the same target computer it will only initiate one deployment at a time and simply queue the others. When one deployment completes the next will begin.