That is MSI trying to find resources in the Error table but you probably don't have an Error table in your MSI. Here is a list of the message strings: http://msdn.microsoft.com/en-us/library/aa372835(v=vs.85).aspx. As you can see 1707 & 1709 are the ids for the success messages you see following these messages.

Answer from TheESJ on Stack Overflow
🌐
InstallAware
installaware.com › board index › technical support
MSI Error 1708 / 1709 - InstallAware
December 21, 2007 - === Logging stopped: 21/12/2007 ... 1708 MSI (s) (30:C4) [16:25:33:667]: Note: 1: 2205 2: 3: Error MSI (s) (30:C4) [16:25:33:667]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (s) (30:C4) [16:25:33:667]: Product: FireDaemon Pro -- Installation ...
Discussions

agent-4.2.3-1.msi log file errors explanation
=== Logging stopped: 8/16/2022 ... 1707 MSI (c) (C4:98) [11:42:52:141]: Note: 1: 2205 2: 3: Error MSI (c) (C4:98) [11:42:52:141]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (c) (C4:98) [11:42:52:141]: Product: Wazuh Agent -- Installation ... More on github.com
🌐 github.com
2
August 18, 2022
Mixed Mode Msi Installer
=== Logboekfunctie beëindigd: ... 1707 MSI (c) (58:48) [10:46:31:796]: Note: 1: 2205 2: 3: Error MSI (c) (58:48) [10:46:31:796]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (c) (58:48) [10:46:31:796]: Product: Codex -- De installatie ... More on advancedinstaller.com
🌐 advancedinstaller.com
0
June 21, 2016
Windows 10 Update 1709 failed with error message Your device is at risk
Hi there, Update from 1709 errors message, Your device is at risk because it's out of date and missing important security and quality updates. Let's get you back on track so Windows can run more securely. Select this button to start: I have tried so… More on learn.microsoft.com
🌐 learn.microsoft.com
5
16
IA 6.6 and error 1708 / 1709 during install - HELP PLEASE - InstallAware
MSI (s) (C8:60) [16:06:44:526]: ... 4010 MSI (s) (C8:60) [16:07:57:103]: Note: 1: 2205 2: 3: Error MSI (s) (C8:60) [16:07:57:103]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 Does anyone have any ideas?... More on installaware.com
🌐 installaware.com
July 14, 2007
🌐
Spiceworks
community.spiceworks.com › software & applications
Windows 11 24H2 MSI install issue - #8 by Michal_B - Software & Applications - Spiceworks Community
January 16, 2025 - MSI (c) (50:A8) [08:11:30:284]: ... 2: 3: Error MSI (c) (50:A8) [08:11:30:284]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (c) (50......
🌐
Msp360
kb.msp360.com › standalone-backup › restore › unsupported-os
Unsupported OS (code 1709) | Knowledge Base
This feature has several limitations, ... The occurremce of the error 1709 means that Windows version of the instance where Backup for Windows is installed does not have a sufficient WMI kit to support the Convert GPT to MBR feature....
🌐
Microsoft Learn
learn.microsoft.com › en-us › windows › win32 › msi › windows-installer-error-messages
Windows Installer Error Messages (for Developers) - Win32 apps | Microsoft Learn
The error codes numbered greater than 2000 are internal errors and do not have authored strings, but these can occur if the installation package has been incorrectly authored. For error codes specific to the Windows Installer functions MsiExec.exe and InstMsi.exe, see MsiExec.exe and InstMsi.exe Error Messages.
🌐
GitHub
github.com › wazuh › wazuh-packages › issues › 1786
agent-4.2.3-1.msi log file errors explanation · Issue #1786 · wazuh/wazuh-packages
August 18, 2022 - === Logging stopped: 8/16/2022 ... 1707 MSI (c) (C4:98) [11:42:52:141]: Note: 1: 2205 2: 3: Error MSI (c) (C4:98) [11:42:52:141]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (c) (C4:98) [11:42:52:141]: Product: Wazuh Agent -- Installation ...
Author   wazuh
🌐
Advanced Installer Community
advancedinstaller.com › board index › advanced installer software › common problems
Mixed Mode Msi Installer - Advanced Installer Community
June 21, 2016 - === Logboekfunctie beëindigd: ... 1707 MSI (c) (58:48) [10:46:31:796]: Note: 1: 2205 2: 3: Error MSI (c) (58:48) [10:46:31:796]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (c) (58:48) [10:46:31:796]: Product: Codex -- De installatie ...
🌐
InstallSite Forum
forum.installsite.net › indexb018.html
Error 2709 and 1709 - General MSI - InstallSite Forum
February 25, 2019 - The arguments are: component80747, , MSI © (C8:EC) [11:52:29:619]: Note: 1: 2205 2: 3: Error MSI © (C8:EC) [11:52:29:619]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI © (C8:EC) [11:52:29:635]: Product: Catia V5.15 -- The installer has encountered an unexpected error installing this package.
Find elsewhere
🌐
IT Ninja
itninja.com › question › help-with-msi-1709
ITNinja: The IT Professional's Software Community
March 19, 2012 - Software discussions and tips for IT professionals. Technical questions and troubleshooting materials for administrators featuring the largest collection of deployment command lines and tips for achieving silent, customized installations of all software.
🌐
Qlik Community
community.qlik.com › t5 › Visualization-and-Usability › Installation-Failed-Qlik-Sense-Desktop › td-p › 1973147
Solved: Installation Failed - Qlik Sense Desktop - Qlik Community - 1973147
March 6, 2025 - [19:52:00:787]: Note: 1: 2205 2: 3: Error MSI (s) (88:E8) [19:52:00:787]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (s) (88:E8) [19:52:00:787]: Product: Qlik Sense Desktop -- Installationfailed.MSI (s) (88:E8) [19:52:00:790]: Windows Installer installed the product.
🌐
Microsoft Learn
learn.microsoft.com › en-us › answers › questions › 3295938 › windows-10-update-1709-failed-with-error-message-y
Windows 10 Update 1709 failed with error message Your device is at risk - Microsoft Q&A
You're getting the dire warnings because Version 1709 is too old and not secure. You can try updating directly to the latest 1909 by installing the Media Creation Tool from this link http://windows.microsoft.com/en-us/windows-10/m... choosing ...
🌐
Laserfiche Answers
answers.laserfiche.com › questions › 226206 › The-MSI-cannot-be-run-on-a-64bit-OS
The MSI cannot be run on a 64-bit OS - Laserfiche Answers
MSI (s) (78:9C) [11:42:46:811]: ... 1708 MSI (s) (78:9C) [11:42:46:811]: Note: 1: 2205 2: 3: Error MSI (s) (78:9C) [11:42:46:811]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (s) (78:9C) [11:42:46:811]: Product: CombinedARP -- Installation ...
🌐
InstallAware
installaware.com › board index › technical support
IA 6.6 and error 1708 / 1709 during install - HELP PLEASE - InstallAware
July 14, 2007 - MSI (s) (C8:60) [16:06:44:526]: ... 4010 MSI (s) (C8:60) [16:07:57:103]: Note: 1: 2205 2: 3: Error MSI (s) (C8:60) [16:07:57:103]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 Does anyone have any ideas?...
🌐
Narkive
wix-users.narkive.com › GkVrQ2Px › error-installing-a-large-package-2709-and-1709
[WiX-users] Error installing a large package (2709 and 1709)
Also, can some one please explain error 1709 as the reference in the sdk is pretty useless for this error. Thanks Danish Waheed The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2709. The arguments are: component80747, , MSI (c) (C8:EC) [11:52:29:619]: Note: 1: 2205 2: 3: Error MSI (c) (C8:EC) [11:52:29:619]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (c) (C8:EC) [11:52:29:635]: Product: Catia V5.15 -- The installer has encountered an unexpected error installing this package.
🌐
MSI
forum-en.msi.com › home
MSI Global English Forum
January 18, 2018 - Follow along with the video below to see how to install our site as a web app on your home screen · Note: This feature currently requires accessing the site using the built-in Safari browser
Top answer
1 of 1
4

Adding this as an answer - it is too long as a comment, and I think it is the correct answer as well. If you read this answer, please also see my comment above for a very good MSI log file debugging tip from Rob Mensching (creator of WiX) - and how to ensure all entries make it into the log file by enabling "flush to log" for crashing custom actions.


The Answer

Dependency on a missing runtime like Powershell would certainly trigger the rollback. MSI hosts its own runtime for certain script custom actions (active scripting). For example VBScript and JavaScript. For reliable deployment, it is recommended that all custom actions used be either self-contained minimum-dependency C++ dlls or executables (win32) or (less desirable) VBScript or JavaScript (or even Installscript if you use Installshield - see details below).

Disputed opinion of mine: The worst custom actions to use for reliability and robustness are .NET binaries requiring a specific version of the .NET framework. This also applies to PowerShell - which is not only managed code, but also a script. I am very tempted to say that these technologies shouldn't be used for deployment, but if you need to use PowerShell you must at a minimum add a "verify PowerShell installed" custom action at the start of your setup, and exit gracefully with a proper error message displayed (and/or logged) if PowerShell is not available.

That is the end of the real answer :-). Below are some "verbose musing" in case you are making a package for general distribution (and not just a package for your own company's internal deployment). If I were you I would read it even if you only deploy internally, PowerShell custom actions could be a brewing deployment problem of caliber.

Both managed code and scripts are problematic. PowerShell is effectively both at the same time. Here is Rob Mensching's blog on why script custom actions are bad. Essentially: scripts are fragile, they lack language features, they are hard to debug and anti-virus products often block them. Read the blog. And here is Aaron Stebner's blog on why managed code is bad. Essentially you are not guaranteed a proper runtime environment when you depend on the presence of the .NET framework.


Verbose Musings

I am not sure what is installed as standard on Win7 and Win10. If your are deploying as an "internal package" to your company, I think it should be OK to just add a reliable check for the presence of PowerShell, and then to abort with a meaningful error message if PowerShell is not found. Opinion Warning: But overall .NET binaries and PowerShell scripts are the worst custom actions for reliability. I would never use them for setups targeting diverse computers.

If you are making an MSI for general distribution to any computer anywhere, I would take the time to convert the PowerShell script to something else. Preferably a C++ dll - which I find most reliable. There are no dependencies to speak of or layers to depend on. Even InstallScript is acceptable if you would have been using Installshield (it can run without a pre-installed runtime at this point - which has significantly improved its reliability and usefulness - it is an obtuse language though with rather archaic syntax. In fairness, not to be underestimated - it does the job, and is simpler than C++).

JavaScript and VBScript custom actions are possible to use even for MSIs that are for general distribution to any computer, but still not recommended. I tend to use them only for "internal company deployment" packages. These can be standardized and crucially scripts are transparent to other system administrators and packagers. They can see and inspect what is being done as part of the installation. This is generally desirable and one of the key benefits of MSI for corporate deployment, but sometimes you need a compiled binary to hide implementation details (for example when you validate a license key). Then scripts of any kind can't be used - obviously. By being transparent and also embedded in the MSI (so the full, running source is always available), it helps different application packagers to be able to pick up someone else's work when need be. And in a deployment team there is always someone available to debug scripts - but few may know proper C++. In corporations where developers of internal applications make their own MSI files without much deployment knowledge, scripting can go completely astray and cause very difficult deployment problems. Very often what is needed is small changes to the application itself to allow more reliable deployment. An application should do its own startup configuration for example - none of this should be done in setup scripts, but many developers do this.

Using script custom actions is controversial. If you ask 2 development experts you will get 4 opinions. In my view "white box" custom actions (scripts) are good for corporate use if they do something specific that isn't common so people can see what is going on. For stuff that is needed all the time, a corporation should make a compiled C++ dll driven by custom tables in the MSI file with full QA and rollback support - something that is generally always missing for all script custom actions (it isn't trivial to implement). A "data driven" (custom tables) C++ custom action has minimal dependencies as its biggest strength, and it is also transparent (what will happen is transparent, but the actual implementation is compiled and hidden - which can also improve security). The WiX toolkit provides such a custom action dll with rollback support written in C++. It should solve most custom tasks required for corporate deployment. All of this is way beyond your question though - just a digression :-).


If I were to guess I would say that Windows Installer might be updated to be able to host its own runtime for Powershell - but this is just speculation. I am not sure of the technical details - it would seem the whole .NET runtime would be needed? If you ask me, I would still prefer a JavaScript to a PowerShell script, but I realize you are probably committed to PowerShell as a company standard? Also, always prefer JavaScript over VB Script since it has something that looks like exception handling (which VB Script lacks entirely). UPDATE: real-world testing indicates that VBScript is actually better to use with MSI than Javascript. For example: I have seen obscure problems when accessing the MSI API with Javascript. MSI itself was probably tested more with VBScript than with Javascript when it was created. Let's be honest: both "languages" have severe limitations and both are hard to debug.

Rob Mensching, Chris Painter, Phil Wilson, Bob Arnson and probably others too (I am not sure of Stefan Kruger's position on scripts, or Robert Dickau's view) - will kill me for this, but here is a template for a JavaScript custom action (untested by me, but looks OK): How to debug an MSI Custom Action that is implemented in Javascript? . If I can just blurt it out: anything is better than PowerShell at the present time - even JavaScript.

Rest assured, I have wasted a lot of time debugging extremely poor VB Script custom actions. Probably the most incompetent and deprived language ever used for deployment. On Error Resume Next for error handling? It can't get much worse. I generally only use scripts for read-only operations and set property actions.

Maybe we will see VB Script deprecated and PowerShell added as a viable MSI scripting option in due time? I wouldn't judge this as safe until all operating systems in use would have at least a baseline version of the .NET framework installed - and even then I believe policies could lock specific versions of .NET from being used. Do you want a package that suddenly can't uninstall because the target version of the .NET framework is no longer operational? Fixing such an issue could be an incredible amount of work - especially for a corporation with a large package estate (thousands of packages, thousands of machines).


Recommended Custom Action Implementation

I wrote up a summary of "recommendations" for custom action implementation. It became pages long without saying much - I deleted it. Instead, here is a list of my custom action implementation preference (in order of decreasing robustness and reliability): 

UPDATE May,2018: no longer recommending Javascript over VBScript.

  1. C++ dll
  2. Installscript (InstallShield only)
  3. VB Script
  4. JavaScript
  5. C# DTF
  6. PowerShell

Summary:

  • For me PowerShell is at the time of writing absolutely the worst choice. It is both managed code (unreliable runtime) and a script custom action (poor debugging).
  • I would like to write C# / DTF custom actions like Chris does for simplicity, but I don't believe the time is ripe - the runtime environment cannot be guaranteed. In the real world you don't throw out a working C++ dll in favor of a C# dll. It is a huge reliability downgrade.
  • C++ dll and Installscript are the only choices for making a professional, vendor setup targeting diverse computers (not standardized desktops in managed environments - corporations, but computers anywhere in the world in all their heterogeneous states, in different languages and diverse hardware and software configurations).
  • A C++ custom action dll is significantly harder to set up and configure than other custom actions with its exports, build settings and outputs, but it is no magical impossibility. In return you get a lot: full debugging capability, advanced language features and error handling. And the big one: minimum dependencies (make sure you enable static linking to eliminate all possible dependencies). For debugging you can simply attach the Visual Studio debugger to a message box displayed by your custom action, and then you can step through code. This works for both user and system context custom actions. Full control. This actually makes debugging a C++ custom action easier than a script custom action, and certainly more reliable.
  • JavaScript I would generally avoid. It just isn't a complete language. I still think it is more reliable than managed code though - in terms of runtime dependencies and reliability (fewer runtime dependency pitfalls).
  • VB Script is acceptable for "internal corporate use" in a managed environment. I would never use it for a vendor setup for general distribution. But to distribute packages on a corporate network it can be used. Both for developers packaging their own applications, and for application packagers tweaking third party setups for corporate deployment. The primary advantages and disadvantages of VBScript actions:
    • As stated above, scripts should only be used in rare cases, and a win32 C++ dll or WiX's custom action dll should be used for all common scripting tasks that people tend to re-use. Scripts are only to be used when needed to get the job done.
    • VBScript custom actions are, like all script custom actions, in general hard to debug, vulnerable to anti-virus interference and lacking in language features needed to implement advanced coding constructs. You just don't have the language features and flexibility available with C++ (now even C++ custom actions can be blocked by security software - but it is not as common, but could that change as security is tightened?)
    • Scripts are transparent for everyone (both purpose and implementation) and can be debugged and maintained easily by several team members with work handed off between them. All can see what is going on and everyone can pick up someone else's work quickly.
    • The source embedded in the MSI is the right source, you don't need to maintain source files separately in a repository to compile it like you need for managed code (C#). For application packaging source control is rarely set up is my experience (it should be though).
    • Corporate packages target a standard operating environment (SOE). All the workstations are similar or the same, with the same anti-virus solution. This obviously means that the target computers are in a much more uniform state than what is normal. Any anti-virus issues will be detected and can be managed. Personally I haven't seen any major anti-virus interference problems with simple scripts for such package deployment.
    • There tends to be a lot of expertise in script debugging in packaging teams, but very little C++ knowledge (many know some C# and PowerShell though). Developers would likely prefer C#, but can easily handle scripts.

One thing that I am certain of, is that the availability of managed code custom actions will cause people to do way too many things in their setups that should never be done in a setup (rich API, relatively easy coding). This is all because coding is easier and faster, and the developer in question may lack an understanding of how proper deployment should be done. This inevitably leads to overuse of custom actions of all kinds, and in turn major deployment problems as the complexity of custom actions trigger unexpected errors.

🌐
BleepingComputer
bleepingcomputer.com › bleepingcomputer forums › microsoft windows support › windows 10 support
Windows Update 1709 fails - Windows 10 Support
June 19, 2025 - Open administrative Command Prompt and type following commands one-by-one followed by Enter key. net stop wuauserv net stop cryptSvc net stop bits net stop msiserver Ren C:\Windows\SoftwareDistribution SoftwareDistribution.old Ren C:\Windows\System32\catroot2 Catroot2.old net start wuauserv net start cryptSvc net start bits net start msiserver Close Command Prompt and see if update works then.
🌐
GitHub
github.com › elastic › windows-installers › issues › 246
Failed during installation using MSI on Win 10 · Issue #246 · elastic/windows-installers
November 20, 2018 - Environment Not behind proxy. Stockholm Sweden. Expected Behaviour INstallation success. Actual Behaviour Not isntalled, no directories created. Steps to reproduce the behaviour DOuble click on MSI file. Fresh. 1. 2. 3.
Author   elastic
🌐
Splunk Community
community.splunk.com › t5 › Installation › Why-unable-to-install-splunkforwarder-8-2-2-87344edfcdb4-x64 › td-p › 601385
Why unable to install splunkforwarder-8.2.2-87344edfcdb4-x64-release.msi on window server 2012 R2?
June 21, 2022 - Property(S): ProductToBeRegistered = 1 MSI (s) (0C:60) [13:31:30:958]: Note: 1: 1708 MSI (s) (0C:60) [13:31:30:958]: Note: 1: 2205 2: 3: Error MSI (s) (0C:60) [13:31:30:958]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1708 MSI (s) (0C:60) [13:31:30:958]: Note: 1: 2205 2: 3: Error MSI (s) (0C:60) [13:31:30:958]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (s) (0C:60) [13:31:30:958]: Product: UniversalForwarder -- Installation failed.
🌐
Shaun Cassells
shauncassells.wordpress.com › 2018 › 01 › 23 › resolved-feature-update-to-windows-10-version-1709-error-0x80242006
Resolved: Feature update to Windows 10, version 1709 – Error 0x80242006
January 23, 2018 - Working with some of my team mates this week, I was hearing about multiple machines failing the Fall Creators Update (FCU) 1709 with a Windows Update error of ” Feature update to Windows 10, …