After reviewing the logs and digging into windows registry and security, I found the problem was "Microsoft Edge" registry key. Somehow it is read-only for administrator and I figured it out I need to use SYSTEM account to apply the service pack.
Finally I found I can do that using an executable in SysInternals package which is famous for doing weird things in Windows.
This is what I did to apply the service pack.
- Run Cmd or PowerShell as Administrator
- Go to SysInternals and make sure you have the PsExec64.exe there
- Run below command:
.\PsExec64.exe -sid "D:\Downloads\SQLServer2019-KB4577194-x64.exe"
This way you will execute the service pack using SYSTEM account which has highest privilege.
Service pack installed successfully!