{"record":{"id":"c4039ab5564be7a7","repo":"apache/seatunnel","slug":"failed-to-load-jdbc-driver-c4039a","errorCode":null,"errorMessage":"Failed to load JDBC driver {}","messagePattern":"Failed to load JDBC driver (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/sink/JdbcSinkWriter.java","lineNumber":138,"sourceCode":"                                connectionProvider,\n                                jdbcSinkConfig,\n                                tableSchema,\n                                databaseTableSchema)\n                        .build();\n        configureOutputFormatForRowErrorHandling();\n        if (context != null) {\n            context.registerFlushAction(this::timerFlush);\n        }\n    }\n\n    @Override\n    public MultiTableResourceManager<ConnectionPoolManager> initMultiTableResourceManager(\n            int tableSize, int queueSize) {\n        HikariDataSource ds = new HikariDataSource();\n        try {\n            Class.forName(jdbcSinkConfig.getJdbcConnectionConfig().getDriverName());\n        } catch (Exception e) {\n            log.warn(\n                    \"Failed to load JDBC driver {}\",\n                    jdbcSinkConfig.getJdbcConnectionConfig().getDriverName(),\n                    e);\n        }\n        ds.setIdleTimeout(30 * 1000);\n        ds.setMaximumPoolSize(queueSize);\n        ds.setJdbcUrl(jdbcSinkConfig.getJdbcConnectionConfig().getUrl());\n        ds.setDriverClassName(jdbcSinkConfig.getJdbcConnectionConfig().getDriverName());\n        if (jdbcSinkConfig.getJdbcConnectionConfig().getUsername().isPresent()) {\n            ds.setUsername(jdbcSinkConfig.getJdbcConnectionConfig().getUsername().get());\n        }\n        if (jdbcSinkConfig.getJdbcConnectionConfig().getPassword().isPresent()) {\n            ds.setPassword(jdbcSinkConfig.getJdbcConnectionConfig().getPassword().get());\n        }\n        ds.setAutoCommit(jdbcSinkConfig.getJdbcConnectionConfig().isAutoCommit());\n        applyConnectionValidation(ds, jdbcSinkConfig.getJdbcConnectionConfig());\n        jdbcSinkConfig.getJdbcConnectionConfig().getProperties().forEach(ds::addDataSourceProperty);\n        return new JdbcMultiTableResourceManager(new ConnectionPoolManager(ds));","sourceCodeStart":120,"sourceCodeEnd":156,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/sink/JdbcSinkWriter.java#L120-L156","documentation":"JdbcSinkWriter.initMultiTableResourceManager() creates the Hikari connection pool and first loads the JDBC driver via Class.forName(driverName). Load failure is WARN-logged, not thrown; the pool is still configured and later connection creation will fail with 'No suitable driver'.","triggerScenarios":"Writer initialization with multi-table resource manager while driver-name class is absent from the classpath (missing driver jar, wrong class name, shaded path issues).","commonSituations":"Driver jar not installed for the engine/worker nodes; typo in driver_name; using a driver compiled for an incompatible JDK.","solutions":["Add the JDBC driver jar to the worker classpath","Fix driver_name to the correct FQCN","Verify the jar exists on all worker nodes, not just the client"],"exampleFix":"// before\ndriver_name = \"com.microsoft.sqlserver.jdbc.SQLServerDriver\" // jar missing\n// after\n# copy mssql-jdbc-*.jar to $SEATUNNEL_HOME/lib then restart workers","handlingStrategy":"validation","validationCode":"// verify driver before opening pools\ntry {\n    Class.forName(driverName);\n} catch (ClassNotFoundException e) {\n    throw new IllegalStateException(\"Driver missing: \" + driverName);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Distribute driver jars to every worker node","Validate FQCN against the shipped driver version","Test connection pool init in a pre-deploy smoke test"],"tags":["jdbc","classpath","driver-loading","hikaricp"],"backgroundTag":"class-not-found","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}