(The Curious Case of… used to be part of our bi-weekly newsletter but we decided to make it a regular blog post instead so it can sometimes be more frequent. It covers something interesting one of us encountered when working with a client, doing some testing, or were asked in a random question from the community.)

This time the Curious Case is about something that happened to me: a failing SQL Server 2019 install.

I have a brand new Windows 10 laptop that I use solely for teaching, as the HDMI and SVGA connectors on my main laptop somehow have bad connections to the motherboard after a few years of traveling around the world. On the new laptop I have SQL Server 2017, and now that SQL Server 2019 RTM has shipped, and I’ve finished teaching for the year, I set out to install 2019 side-by-side with 2017 so I can move my teaching environment to 2019 and work on demos of the new features pertinent to what I teach.

Thinking this would be a smooth process, I kicked off the install wizard, went through it, hit go, and walked away. I came back half an hour later to see that all install steps had failed. I thought maybe it was some dependency issue, so did it all again, hit go and watched. Almost instant failure again.

The setup summary had this really unhelpful summary:

Overall summary:
Final result: Failed: see details below
Exit code (Decimal): -2068643839
Start time: 2019-11-23 14:27:14
End time: 2019-11-23 14:30:28
Requested action: Install

Setup completed with required actions for features.
Troubleshooting information for those features:
Next step for sql_inst_java: Use the following information to resolve the error, and then try the setup process again.
Next step for sql_inst_mpy: Use the following information to resolve the error, and then try the setup process again.
Next step for sql_inst_mr: Use the following information to resolve the error, and then try the setup process again.
Next step for AdvancedAnalytics: Use the following information to resolve the error, and then try the setup process again.
Next step for SQLEngine: Use the following information to resolve the error, and then try the setup process again.
Next step for Replication: Use the following information to resolve the error, and then try the setup process again.
Next step for SNAC_SDK: Use the following information to resolve the error, and then try the setup process again.

So I dug in to the Detail.txt file in C:\Program Files\Microsoft SQL Server\150\Setup Bootstrap\Log\20191123_142713 and eventually found the first thing that failed:

(01) 2019-11-23 14:30:23 Slp: Running Action: Install_sqlncli_Cpu64_Action
(01) 2019-11-23 14:30:23 Slp: SetFeaturePropsModifyInstallAction for sqlncli_Cpu64 
(01) 2019-11-23 14:30:23 Slp: Sco: Attempting to create base registry key HKEY_LOCAL_MACHINE, machine 
(01) 2019-11-23 14:30:23 Slp: Sco: Attempting to open registry subkey 
(01) 2019-11-23 14:30:23 Slp: Sco: Attempting to open registry subkey SOFTWARE\Microsoft\Microsoft SQL Server\RefCount\SNAC11
(01) 2019-11-23 14:30:23 Slp: Sco: Attempting to create base registry key HKEY_LOCAL_MACHINE, machine 
(01) 2019-11-23 14:30:23 Slp: Sco: Attempting to open registry subkey 
(01) 2019-11-23 14:30:23 Slp: Sco: Attempting to open registry subkey SOFTWARE\Microsoft\VisualStudio\14.0
(01) 2019-11-23 14:30:23 Slp: Sco: Attempting to get registry value InstallDir
(01) 2019-11-23 14:30:23 Slp: Checkpoint: PREINSTALL_SQLNCLI_CPU64_ACTION
(01) 2019-11-23 14:30:23 Slp: Sco: Waiting for service 'msiserver' to accept the stop request.
(01) 2019-11-23 14:30:23 Slp: Sco: Attempting to open SC Manager
(01) 2019-11-23 14:30:23 Slp: Sco: Attempting to open service handle for service msiserver
(01) 2019-11-23 14:30:23 Slp: Invoking QueryServiceStatus Win32 API
(01) 2019-11-23 14:30:23 Slp: Sco: Attempting to close service handle for service msiserver
(01) 2019-11-23 14:30:23 Slp: Sco: Attempting to close SC Manager
(01) 2019-11-23 14:30:23 Slp: Target package: "E:\1033_ENU_LP\x64\setup\x64\sqlncli.msi"
(01) 2019-11-23 14:30:23 Slp: InstallPackage: MsiInstallProduct returned the result code 1602.
(01) 2019-11-23 14:30:23 Slp: No retry-able MSI return code detected.
(01) 2019-11-23 14:30:23 Slp: ExecuteActionWithRetryHelper.Failed actionToExecute is 'Install_sqlncli_Cpu64_Action', stack trace    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.<>c__DisplayClass2_0.<ExecuteActionWithRetryHelper>b__0()
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(ActionWorker workerDelegate)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionWithRetryHelper(WorkflowObject metaDb, ActionKey action, ActionMetadata actionMetadata, TextWriter statusStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.InvokeAction(WorkflowObject metabase, TextWriter statusStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.PendingActions.InvokeActions(WorkflowObject metaDb, TextWriter loggingStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionEngine.RunActionQueue()
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.<>c__DisplayClass2_0.<ExecuteActionWithRetryHelper>b__0()
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(ActionWorker workerDelegate)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionWithRetryHelper(WorkflowObject metaDb, ActionKey action, ActionMetadata actionMetadata, TextWriter statusStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.InvokeAction(WorkflowObject metabase, TextWriter statusStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.PendingActions.InvokeActions(WorkflowObject metaDb, TextWriter loggingStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionEngine.RunActionQueue()
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.Workflow.RunWorkflow(WorkflowObject workflowObject, HandleInternalException exceptionHandler)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.<>c__DisplayClass2_0.<ExecuteActionWithRetryHelper>b__0()
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(ActionWorker workerDelegate)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionWithRetryHelper(WorkflowObject metaDb, ActionKey action, ActionMetadata actionMetadata, TextWriter statusStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.InvokeAction(WorkflowObject metabase, TextWriter statusStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.PendingActions.InvokeActions(WorkflowObject metaDb, TextWriter loggingStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionEngine.RunActionQueue()
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.Workflow.RunWorkflow(WorkflowObject workflowObject, HandleInternalException exceptionHandler)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.<>c__DisplayClass2_0.<ExecuteActionWithRetryHelper>b__0()
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(ActionWorker workerDelegate)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionWithRetryHelper(WorkflowObject metaDb, ActionKey action, ActionMetadata actionMetadata, TextWriter statusStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.InvokeAction(WorkflowObject metabase, TextWriter statusStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.PendingActions.InvokeActions(WorkflowObject metaDb, TextWriter loggingStream)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionEngine.RunActionQueue()
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.Workflow.RunWorkflow(WorkflowObject workflowObject, HandleInternalException exceptionHandler)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Chainer.Setup.Setup.RunRequestedWorkflow()
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Chainer.Setup.Setup.Run(String[] args)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Chainer.Setup.Setup.Start(String[] args)
(01) 2019-11-23 14:30:23 Slp:    at Microsoft.SqlServer.Chainer.Setup.Setup.Main()
(01) 2019-11-23 14:30:23 Slp: Error: Action "Install_sqlncli_Cpu64_Action" failed during execution.

And this caused everything else to fail.

I went to Control Panel and looked in Apps and Features, and found Microsoft SQL Server 2012 Native Client. Thinking this was likely the issue, I de-installed it and ran 2019 setup again. Bingo! No problems this time.

I did a bit of poking around online and it’s a known issue that’s described in the 2019 release notes – see this Microsoft blog post.

PS Don’t forget to install the GDR hotfix after installing 2019!