Description
Materialization from an external PostgreSQL database fails because the PostgreSQL JDBC driver used by Signals Inventa materialization worker lacks the shaded SCRAM client library required for SCRAM-SHA-256 authentication, causing a NoClassDefFoundError:
│ 26/11/04 13:50:58 INFO LineBufferedStream: {"@timestamp":"2026-11-04T13:50:58.981+00:00","level":"INFO","message":"Starting Materialization job with 16 parallel threads","threads":16,"jobId":"6ae │
│ b2c3991897d0010e0722f","workspace":"sdf","driver":"postgres","fetchSize":"1000","stream":"06224adc-6f90-4820-92ca-0fa74201c47f","query":"select * from compound_neu","transactionId":"84c07107-4774 │
│ -4c2a-869c-3ea2a1f75345","logger_name":"com.perkinelmer.signals.cluster.materialization.MaterializationProcessor$","thread_name":"pool-4-thread-1"} │
│ 26/11/04 13:50:59 INFO LineBufferedStream: {"@timestamp":"2026-11-04T13:50:59.718+00:00","level":"INFO","message":"Materialization Initialization Job Complete in 737","elapsed":737,"jobId":"6aeb2 │
│ c3991897d0010e0722f","workspace":"sdf","driver":"postgres","fetchSize":"1000","stream":"06224adc-6f90-4820-92ca-0fa74201c47f","query":"select * from compound_neu","transactionId":"84c07107-4774-4 │
│ c2a-869c-3ea2a1f75345","logger_name":"com.perkinelmer.signals.cluster.materialization.MaterializationProcessor$","thread_name":"pool-4-thread-1"} │
│ 26/11/04 13:51:00 INFO LineBufferedStream: Exception in thread "doobie-fromDriverManager-pool-103" java.lang.NoClassDefFoundError: org/postgresql/shaded/com/ongres/scram/client/ScramClient$Channe │
│ lBinding │
Changing the server-side authentication method to MD5, reloading configuration, and resetting the user password (hashed with MD5) resolves the issue and allows the sync to complete.
Solution
To resolve the issue, the external PostgreSql database administrator can configure the user connection to authenticate via md5 rather than scram-sha-256. MD5 authentication does not invoke the SCRAM client class, so this issue won't be raised.
1. In PostgreSQL instance, update pg_hba.conf: Change the authentication method for the Inventa user or host from scram-sha-256 to md5:
# TYPE DATABASE USER ADDRESS METHOD host all <inventa_user> <inventa_ip/subnet> md5
2. Reload PostgreSQL configuration:
SELECT pg_reload_conf();
3. Re-hash the user's password with MD5 (Postgres stores passwords using the method active when the password was set; if originally set under SCRAM, it must be reset):
SET password_encryption = 'md5'; ALTER USER <inventa_user> WITH PASSWORD '<password>';
4. Retry the materialization job in Inventa.
Comments
0 comments
Article is closed for comments.