The Repository service does not start after patch removal or repair installation.
The Windows Application Event logs record the following:
Log Name: Application Source: PostgreSQL EventID:0 Level: Error: User: N/A General: ... FATAL: password authentication failed for the user "postgres" DETAIL: Password does not match for user "postgres". Connection matched pg_hba.conf line 80: "host all all 127.0.0.1/32 md5"
The Repository > Trace > System Repository logs the following:
Fatal exception password authentication failed for user "postgres"??The provider did not return a ProviderManifestToken string.??An error occurred accessing the database. This usually means that the connection to the database failed. Check that the connection string is correct and that the appropriate DbContext constructor is being used to specify it or find it in the application's config file
or
ERROR SERVERNAME System.Repository.Repository.Repository.QRSMain 6 <ID> domain\user Fatal exception during startup Waiting for database timed out after 0 seconds
Resolution
The repository configuration file (C:\Program Files\Qlik\Sense\Repository\Repository.exe.config) has been modified and is no longer passing the correct credentials.
Stop all services
Backup the Repository.exe.config file (default: C:\Program Files\Qlik\Sense\Repository\Repository.exe.config but is where ever they install Qlik Sense)
If not already, direct it to the Repository.exe.config file (default: C:\Program Files\Qlik\Sense\Repository\Repository.exe.config but is where ever they install Qlik Sense)
Use the "Connection String Editor" in QlikSenseUtil.exe to decrypt the Connection String (Click on "Read")
Check and see that the password and user ID is correct. If not correct to look as the following:
<connectionStrings>
<add name="QSR" connectionString="User ID=postgres;Host=localhost;Port=4432;Database=QSR;Pooling=true;Min Pool Size=0;Max Pool Size=90;Connection Lifetime=3600;Unicode=true;Password='ENTERYOURSUPERUSERPASSWORDHERE';" providerName="Devart.Data.PostgreSql" />
</connectionStrings>
Make the same correction to other strings if present (newer versions), except for the one connecting to the database called "postgres"