PostgreSQL 13: "[FireDAC][Phys][PG][libpq] authentication method 10 not supported." error

Here is infomation for all users that intend to use mAirList with the new version 13 of the PostgreSQL server:

PostgreSQL 13 uses the new scram-sha-256 password encryption by default, something that is not supported by the libpq.dll client library shipped with mAirList by the time of this writing (v6.3.6).

Thus, you will see the following error:

[FireDAC][Phys][PG][libpq] authentication method 10 not supported.

We are going to ship an updated libpq.dll in the near future. Until then, you can perform the following steps to work around the problem:

  • Edit postgresql.conf on the server, and change password_encryption = 'scram-sha-256' to password_encryption = 'md5'
  • Make sure md5 is used in pg_hba.conf for the authentication line that refers to your IP network.
  • Restart PostgreSQL service.
  • If the SQL user (login role) for your mAirList database has already been created, reset its password, so it is saved in md5 format.

Update 2020-10-28:

Here is a newer version of libpq.dll that should support the new scram-sha-256 password scheme:

Just replace the existing libpq.dll file in your mAirList program folder (usually C:\Program Files (x86)\mAirList x.x).

Unlike the previous version currently shipped with mAirList, it requires that you install the Microsoft Visual C++ Redistributable (vcredist) package if it is not installed on your computer yet. You can download it here:

If vcredist 2013 is missing, you will see the following message when connecting to your mAirListDB database:

[FireDAC][Phys][PGSQL]-314. Cannot load vendor library [LIBPQ.DLL]. The specified module could not be found. Check [LIBPQ.DLL], which is located in one of the PATH directories or in application EXE directory.

This may be slightly misleading, as the libpq.dll file itself is present, it is just a dependency (vcredist) that is actually missing.

We will not ship this new version by default at this point, as the vcredist dependency is likely to break the installation for many existing users, and most are using older PostgreSQL server versions (below 13) anyway.