I've created an issue and am posting here for visibility: https://github.com/FusionAuth/fusionauth-issues/issues/2891
Description
New deployments of the latest FusionAuth (1.53.2) are failing on Azure Database for PostgreSQL Flexible Server version
15.8 with the error below.
Note that Azure does not allow specifying minor versions of Postgres, and auto-upgrades all PostgreSQL Flexible Servers to the latest minor release, potentially breaking existing installations.
fusionauth-86b55b4f87-d9xgs fusionauth -- Initialize migrations so they don't run on new installs │
│ fusionauth-86b55b4f87-d9xgs fusionauth INSERT INTO migrations (name, run_instant) │
│ fusionauth-86b55b4f87-d9xgs fusionauth VALUES ('io.fusionauth.api.migration.guice.Migration_1_8_0', 0), │
│ fusionauth-86b55b4f87-d9xgs fusionauth ('io.fusionauth.api.migration.guice.Migration_1_9_2', 0), │
│ fusionauth-86b55b4f87-d9xgs fusionauth ('io.fusionauth.api.migration.guice.Migration_1_10_0', 0), │
│ fusionauth-86b55b4f87-d9xgs fusionauth ('io.fusionauth.api.migration.guice.Migration_1_13_0', 0), │
│ fusionauth-86b55b4f87-d9xgs fusionauth ('io.fusionauth.api.migration.guice.Migration_1_15_3', 0), │
│ fusionauth-86b55b4f87-d9xgs fusionauth ('io.fusionauth.api.migration.guice.Migration_1_30_0', 0), │
│ fusionauth-86b55b4f87-d9xgs fusionauth ('io.fusionauth.api.migration.guice.Migration_1_42_0', 0); │
│ fusionauth-86b55b4f87-d9xgs fusionauth . Cause: org.postgresql.util.PSQLException: ERROR: could not compute MD5 hash: disabled for FIPS │
│ fusionauth-86b55b4f87-d9xgs fusionauth 2024-09-27 08:35:30.978 PM INFO com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - [6ZLRZw] Attempting to unl │
│ fusionauth-86b55b4f87-d9xgs fusionauth 2024-09-27 08:35:30.979 PM INFO com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - [6ZLRZw] Unlock completed │
│ fusionauth-86b55b4f87-d9xgs fusionauth 2024-09-27 08:35:31.183 PM INFO io.fusionauth.api.configuration.DefaultFusionAuthConfiguration - Loading FusionAuth configur │
│ fusionauth-86b55b4f87-d9xgs fusionauth 2024-09-27 08:35:31.183 PM INFO io.fusionauth.api.configuration.DefaultFusionAuthConfiguration - Dynamically set property [f │
│ fusionauth-86b55b4f87-d9xgs fusionauth 2024-09-27 08:35:31.183 PM INFO com.inversoft.configuration.BasePropertiesFileInversoftConfiguration - │
│ fusionauth-86b55b4f87-d9xgs fusionauth - Overriding default value of property [database.mysql.enforce-utf8mb4] with value [true] │
│ fusionauth-86b55b4f87-d9xgs fusionauth - Overriding default value of property [FUSIONAUTH_APP_RUNTIME_MODE] with value [production] │
│ fusionauth-86b55b4f87-d9xgs fusionauth - Overriding default value of property [SEARCH_TYPE] with value [database]
Calling the postgres md5 function produces the same error:
SELECT MD5('PostgreSQL MD5');
ERROR: could not compute MD5 hash: disabled for FIPS
This error appears to be caused by Microsoft disabling MD5 support in Azure Postgres 15.8.
FusionAuth appears to use the Postgres MD5 function for primary key creation and other non-password hashes. See: fusionauth-database-schema-1.53.2.zip
I have created an Azure support ticket, but the official reply from Microsoft is:
The MD5 postgres function is now unsupported and it's not possible to deploy previous versions of Azure Postgres Flexible Server which support the MD5 function.
If anyone is aware of any workarounds, please reply!