Reviewing the install log shows an error similar to the following:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: The SqlParameter is already contained by another SqlParameterCollection.
at System.Data.SqlClient.SqlParameterCollection.Validate(Int32 index, Object value)
at System.Data.SqlClient.SqlParameterCollection.AddRange(Array values)
at Setup.CustomAction.DbAdapter.ExecuteScript(String sqlScript, SqlParameter parameters)
at Setup.CustomAction.DbAdapter.ExecuteBatchFile(String batchFileContent, SqlParameter parameters)
at Setup.CustomAction.CaDatabaseCreator.CreateReportingDatabase(SqlServerContext context, String dbName)
at Setup.CustomAction.CaDatabaseCreator.CreateReportingDatabase(Session session)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object parameters, Object arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture)
at Microsoft.Deployment.WindowsInstaller.CustomActionProxy.InvokeCustomAction(Int32 sessionHandle, String entryPoint, IntPtr remotingDelegatePtr)