[GH-ISSUE #1599] DuckDB - Error reading driver properties: Error creating driver 'DuckDB' instance. #363

Closed
opened 2026-03-07 20:48:15 +03:00 by kerem · 0 comments
Owner

Originally created by @SantiagoG on GitHub (Apr 11, 2023).
Original GitHub issue: https://github.com/dbeaver/cloudbeaver/issues/1599

First, thank you for your ongoing support for Cloudbeaver CE

I am having issues accessing/creating connections to this driver.
I was able to follow your build instructions starting with the following OS setups/base images:

  • Minimal Ubuntu 20.04.
  • maven:3.9.0-eclipse-temurin-17-focal docker image

In both cases I am able to build and deploy the server that includes the duckdb driver. This is how my final artifacts look like:

~/cloudbeaver/deploy$ ls -ltrh
total 16K
drwxr-xr-x 1 32 Apr 11 14:33 supervisor
drwxr-xr-x 1 54 Apr 11 14:33 scripts
drwxr-xr-x 1 170 Apr 11 14:33 docker
-rw-r--r-- 1 91 Apr 11 14:33 build-sqlite.sh
-rw-r--r-- 1 93 Apr 11 14:33 build-sqlite.bat
-rwxr-xr-x 1 1.8K Apr 11 14:33 build.sh
-rw-r--r-- 1 1.8K Apr 11 14:33 build.bat
drwxr-xr-x 1 126 Apr 11 14:47 cloudbeaver

~/cloudbeaver/deploy/cloudbeaver$ ls -ltr drivers/
total 0
drwxr-xr-x  Apr 11 14:46 clickhouse
. . .
drwxr-xr-x 1 Apr 11 14:46 duckdb

~/cloudbeaver/deploy/cloudbeaver$ ls -ltrh drivers/duckdb/
total 54M
-rw-r--r-- 1 54M Apr 11 14:46 duckdb_jdbc-0.7.1.jar

After deploying/running server, when I try to create a new DB connection (or accessing the driver properties) with duckdb I get the following errors:

From GUI dialog:

Error connecting to database:
Connection failed:
Can't create driver instance
java.lang.ClassNotFoundException: org.duckdb.DuckDBDriver
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:467)
	at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1186)
	at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1122)
	at org.jkiss.dbeaver.registry.driver.DriverDescriptor.getDriverInstance(DriverDescriptor.java:675)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.getDriverInstance(JDBCDataSource.java:697)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.openConnection(JDBCDataSource.java:177)
	at org.jkiss.dbeaver.ext.generic.model.GenericDataSource.openConnection(GenericDataSource.java:143)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext.connect(JDBCExecutionContext.java:103)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCRemoteInstance.initializeMainContext(JDBCRemoteInstance.java:102)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCRemoteInstance.<init>(JDBCRemoteInstance.java:61)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.initializeRemoteInstance(JDBCDataSource.java:130)
	at org.jkiss.dbeaver.ext.generic.model.GenericDataSource.<init>(GenericDataSource.java:109)
	at org.jkiss.dbeaver.ext.generic.model.meta.GenericMetaModel.createDataSourceImpl(GenericMetaModel.java:91)
	at org.jkiss.dbeaver.ext.generic.GenericDataSourceProvider.openDataSource(GenericDataSourceProvider.java:106)
	at org.jkiss.dbeaver.registry.DataSourceDescriptor.openDataSource(DataSourceDescriptor.java:1191)
	at org.jkiss.dbeaver.registry.DataSourceDescriptor.connect(DataSourceDescriptor.java:1056)
	at org.jkiss.dbeaver.runtime.jobs.ConnectJob.run(ConnectJob.java:70)
	at org.jkiss.dbeaver.runtime.jobs.ConnectionTestJob.run(ConnectionTestJob.java:103)
	at io.cloudbeaver.service.core.impl.WebServiceCore.testConnection(WebServiceCore.java:654)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)

Server logs

04:57:56.990 [main] INFO  io.cloudbeaver.server.CBPlatform - Available drivers: ClickHouse (Legacy),ClickHouse,Db2 for LUW,Db2 for IBM i,Firebird,Derby Server,DuckDB,Trino,H2 Embedded,H2 Embedded V.2,MS SQL Server / SQL Server,MySQL,MariaDB,Oracle,PostgreSQL,SQLite

05:10:39.682 [Test datasource connection] DEBUG o.j.d.registry.DataSourceDescriptor - Connect with 'jdbc:duckdb::memory:' (duckdb_jdbc-1876eb9233f-6c526c4c4af042a4)
05:10:39.701 [Test datasource connection] DEBUG o.j.d.m.i.AbstractExecutionContext - Execution context opened (jdbc:duckdb::memory:; Main; 0)
05:10:39.707 [Test datasource connection] DEBUG i.c.server.graphql.GraphQLEndpoint - GraphQL call failed at '/connection'
io.cloudbeaver.DBWebException: Error connecting to database:
Connection failed:
Can't create driver instance
        at io.cloudbeaver.service.core.impl.WebServiceCore.testConnection(WebServiceCore.java:665)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at io.cloudbeaver.service.WebServiceBindingBase$ServiceInvocationHandler.invoke(WebServiceBindingBase.java:169)
        at jdk.proxy5/jdk.proxy5.$Proxy8.testConnection(Unknown Source)
        at io.cloudbeaver.service.core.WebServiceBindingCore.lambda$25(WebServiceBindingCore.java:139)
        at graphql.execution.instrumentation.dataloader.DataLoaderDispatcherInstrumentation.lambda$instrumentDataFetcher$0(DataLoaderDispatcherInstrumentation.java:86)
        at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:258)
        at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:197)
        at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72)
        at graphql.execution.Execution.executeOperation(Execution.java:160)
        at graphql.execution.Execution.execute(Execution.java:101)
        at graphql.GraphQL.execute(GraphQL.java:591)
        at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:521)
        at graphql.GraphQL.executeAsync(GraphQL.java:495)
        at graphql.GraphQL.execute(GraphQL.java:426)
        at io.cloudbeaver.server.graphql.GraphQLEndpoint.executeQuery(GraphQLEndpoint.java:254)
        at io.cloudbeaver.server.graphql.GraphQLEndpoint.executeSingleQuery(GraphQLEndpoint.java:200)
        at io.cloudbeaver.server.graphql.GraphQLEndpoint.doPost(GraphQLEndpoint.java:183)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
        at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
        at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1383)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1305)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
        at org.eclipse.jetty.server.Server.handle(Server.java:563)
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
        at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:139)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:933)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1077)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: io.cloudbeaver.DBWebException: Connection failed:
Can't create driver instance
        at io.cloudbeaver.service.core.impl.WebServiceCore.testConnection(WebServiceCore.java:656)
        ... 55 common frames omitted
Caused by: org.jkiss.dbeaver.model.exec.DBCConnectException: Can't create driver instance
        at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.openConnection(JDBCDataSource.java:179)
        at org.jkiss.dbeaver.ext.generic.model.GenericDataSource.openConnection(GenericDataSource.java:143)
        at org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext.connect(JDBCExecutionContext.java:103)
        at org.jkiss.dbeaver.model.impl.jdbc.JDBCRemoteInstance.initializeMainContext(JDBCRemoteInstance.java:102)
        at org.jkiss.dbeaver.model.impl.jdbc.JDBCRemoteInstance.<init>(JDBCRemoteInstance.java:61)
        at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.initializeRemoteInstance(JDBCDataSource.java:130)
        at org.jkiss.dbeaver.ext.generic.model.GenericDataSource.<init>(GenericDataSource.java:109)
        at org.jkiss.dbeaver.ext.generic.model.meta.GenericMetaModel.createDataSourceImpl(GenericMetaModel.java:91)
        at org.jkiss.dbeaver.ext.generic.GenericDataSourceProvider.openDataSource(GenericDataSourceProvider.java:106)
        at org.jkiss.dbeaver.registry.DataSourceDescriptor.openDataSource(DataSourceDescriptor.java:1191)
        at org.jkiss.dbeaver.registry.DataSourceDescriptor.connect(DataSourceDescriptor.java:1056)
        at org.jkiss.dbeaver.runtime.jobs.ConnectJob.run(ConnectJob.java:70)
        at org.jkiss.dbeaver.runtime.jobs.ConnectionTestJob.run(ConnectionTestJob.java:103)
        at io.cloudbeaver.service.core.impl.WebServiceCore.testConnection(WebServiceCore.java:654)
        ... 55 common frames omitted
Caused by: org.jkiss.dbeaver.DBException: Error creating driver 'DuckDB' instance.
Most likely required jar files are missing.
You should configure jars in driver settings.

Reason: can't load driver class 'org.duckdb.DuckDBDriver'
        at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1188)
        at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1122)
        at org.jkiss.dbeaver.registry.driver.DriverDescriptor.getDriverInstance(DriverDescriptor.java:675)
        at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.getDriverInstance(JDBCDataSource.java:697)
        at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.openConnection(JDBCDataSource.java:177)
        ... 68 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.duckdb.DuckDBDriver
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:467)
        at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1186)
        ... 72 common frames omitted

Error when accessing driver properties (GUI)

Error reading driver properties:
Error creating driver 'DuckDB' instance.
Most likely required jar files are missing.
You should configure jars in driver settings.

Reason: can't load driver class 'org.duckdb.DuckDBDriver'
java.lang.ClassNotFoundException: org.duckdb.DuckDBDriver
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:467)
	at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1186)
	at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1122)
	at org.jkiss.dbeaver.registry.driver.DriverDescriptor.getDriverInstance(DriverDescriptor.java:675)
	at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSourceProvider.getConnectionProperties(JDBCDataSourceProvider.java:63)
	at org.jkiss.dbeaver.ext.generic.GenericDataSourceProvider.getConnectionProperties(GenericDataSourceProvider.java:115)
	at io.cloudbeaver.model.WebDatabaseDriverConfig.getDriverProperties(WebDatabaseDriverConfig.java:182)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at graphql.schema.PropertyDataFetcher.getPropertyViaGetterUsingPrefix(PropertyDataFetcher.java:185)
	at graphql.schema.PropertyDataFetcher.getPropertyViaGetterMethod(PropertyDataFetcher.java:174)
	at graphql.schema.PropertyDataFetcher.getPropertyViaGetter(PropertyDataFetcher.java:151)
	at graphql.schema.PropertyDataFetcher.get(PropertyDataFetcher.java:146)
	at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:258)
	at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:197)
	at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72)
	at graphql.execution.ExecutionStrategy.completeValueForObject(ExecutionStrategy.java:638)
	at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:425)
	at graphql.execution.ExecutionStrategy.completeValueForList(ExecutionStrategy.java:517)
	at graphql.execution.ExecutionStrategy.completeValueForList(ExecutionStrategy.java:472)
	at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:410)
	at graphql.execution.ExecutionStrategy.completeField(ExecutionStrategy.java:375)
	at graphql.execution.ExecutionStrategy.lambda$resolveFieldWithInfo$0(ExecutionStrategy.java:199)
	at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:684)
	at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:662)
	at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2168)
	at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:198)
	at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72)
	at graphql.execution.Execution.executeOperation(Execution.java:160)
	at graphql.execution.Execution.execute(Execution.java:101)
	at graphql.GraphQL.execute(GraphQL.java:591)
	at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:521)
	at graphql.GraphQL.executeAsync(GraphQL.java:495)
	at graphql.GraphQL.execute(GraphQL.java:426)

Server log

05:27:12.107 [qtp2008821270-60] DEBUG i.c.server.graphql.GraphQLEndpoint - GraphQL call failed at '/drivers[0]/driverProperties'
io.cloudbeaver.DBWebException: Error reading driver properties:
Error creating driver 'DuckDB' instance.
Most likely required jar files are missing.
You should configure jars in driver settings.

Reason: can't load driver class 'org.duckdb.DuckDBDriver'
        at io.cloudbeaver.model.WebDatabaseDriverConfig.getDriverProperties(WebDatabaseDriverConfig.java:194)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at graphql.schema.PropertyDataFetcher.getPropertyViaGetterUsingPrefix(PropertyDataFetcher.java:185)
        at graphql.schema.PropertyDataFetcher.getPropertyViaGetterMethod(PropertyDataFetcher.java:174)
        at graphql.schema.PropertyDataFetcher.getPropertyViaGetter(PropertyDataFetcher.java:151)
        at graphql.schema.PropertyDataFetcher.get(PropertyDataFetcher.java:146)
        at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:258)
        at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:197)
        at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72)
        at graphql.execution.ExecutionStrategy.completeValueForObject(ExecutionStrategy.java:638)
        at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:425)
        at graphql.execution.ExecutionStrategy.completeValueForList(ExecutionStrategy.java:517)
        at graphql.execution.ExecutionStrategy.completeValueForList(ExecutionStrategy.java:472)
        at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:410)
        at graphql.execution.ExecutionStrategy.completeField(ExecutionStrategy.java:375)
        at graphql.execution.ExecutionStrategy.lambda$resolveFieldWithInfo$0(ExecutionStrategy.java:199)
        at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:684)
        at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:662)
        at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2168)
        at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:198)
        at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72)
        at graphql.execution.Execution.executeOperation(Execution.java:160)
        at graphql.execution.Execution.execute(Execution.java:101)
        at graphql.GraphQL.execute(GraphQL.java:591)
        at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:521)
        at graphql.GraphQL.executeAsync(GraphQL.java:495)
        at graphql.GraphQL.execute(GraphQL.java:426)
        at io.cloudbeaver.server.graphql.GraphQLEndpoint.executeQuery(GraphQLEndpoint.java:254)
        at io.cloudbeaver.server.graphql.GraphQLEndpoint.executeSingleQuery(GraphQLEndpoint.java:200)
        at io.cloudbeaver.server.graphql.GraphQLEndpoint.doPost(GraphQLEndpoint.java:183)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
        at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
        at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1383)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1305)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
        at org.eclipse.jetty.server.Server.handle(Server.java:563)
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
        at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:139)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:933)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1077)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: org.jkiss.dbeaver.DBException: Error creating driver 'DuckDB' instance.
Most likely required jar files are missing.
You should configure jars in driver settings.

Reason: can't load driver class 'org.duckdb.DuckDBDriver'
        at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1188)
        at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1122)
        at org.jkiss.dbeaver.registry.driver.DriverDescriptor.getDriverInstance(DriverDescriptor.java:675)
        at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSourceProvider.getConnectionProperties(JDBCDataSourceProvider.java:63)
        at org.jkiss.dbeaver.ext.generic.GenericDataSourceProvider.getConnectionProperties(GenericDataSourceProvider.java:115)
        at io.cloudbeaver.model.WebDatabaseDriverConfig.getDriverProperties(WebDatabaseDriverConfig.java:182)
        ... 67 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.duckdb.DuckDBDriver
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:467)
        at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1186)
        ... 72 common frames omitted

Describe the solution you'd like

I only found this closed issue https://github.com/dbeaver/cloudbeaver/issues/1159 in relation to DuckDB driver.

I appreciate your assistance with this error. Perhaps, even better if you are able to include DuckDB driver in one of the releases in Docker Hub.

Thank you.

Originally created by @SantiagoG on GitHub (Apr 11, 2023). Original GitHub issue: https://github.com/dbeaver/cloudbeaver/issues/1599 First, thank you for your ongoing support for Cloudbeaver CE #### *Is your feature request related to a problem? Please describe.* I am having issues accessing/creating connections to this driver. I was able to follow your build [instructions](https://github.com/dbeaver/cloudbeaver/wiki/Adding-new-database-drivers#Drivers-and-bundles) starting with the following OS setups/base images: * Minimal Ubuntu 20.04. * maven:3.9.0-eclipse-temurin-17-focal docker [image](https://hub.docker.com/layers/library/maven/3.9.0-eclipse-temurin-17-focal/images/sha256-134f6a7fbe271d6ee18e92e013a94e5367b9d3ca8de440de648c7089143a5fd5?context=explore) In both cases I am able to build and deploy the server that includes the duckdb driver. This is how my final artifacts look like: ```shell ~/cloudbeaver/deploy$ ls -ltrh total 16K drwxr-xr-x 1 32 Apr 11 14:33 supervisor drwxr-xr-x 1 54 Apr 11 14:33 scripts drwxr-xr-x 1 170 Apr 11 14:33 docker -rw-r--r-- 1 91 Apr 11 14:33 build-sqlite.sh -rw-r--r-- 1 93 Apr 11 14:33 build-sqlite.bat -rwxr-xr-x 1 1.8K Apr 11 14:33 build.sh -rw-r--r-- 1 1.8K Apr 11 14:33 build.bat drwxr-xr-x 1 126 Apr 11 14:47 cloudbeaver ~/cloudbeaver/deploy/cloudbeaver$ ls -ltr drivers/ total 0 drwxr-xr-x Apr 11 14:46 clickhouse . . . drwxr-xr-x 1 Apr 11 14:46 duckdb ~/cloudbeaver/deploy/cloudbeaver$ ls -ltrh drivers/duckdb/ total 54M -rw-r--r-- 1 54M Apr 11 14:46 duckdb_jdbc-0.7.1.jar ``` After deploying/running server, when I try to create a new DB connection (or accessing the driver properties) with duckdb I get the following errors: #### From GUI dialog: ``` Error connecting to database: Connection failed: Can't create driver instance java.lang.ClassNotFoundException: org.duckdb.DuckDBDriver at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:467) at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1186) at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1122) at org.jkiss.dbeaver.registry.driver.DriverDescriptor.getDriverInstance(DriverDescriptor.java:675) at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.getDriverInstance(JDBCDataSource.java:697) at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.openConnection(JDBCDataSource.java:177) at org.jkiss.dbeaver.ext.generic.model.GenericDataSource.openConnection(GenericDataSource.java:143) at org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext.connect(JDBCExecutionContext.java:103) at org.jkiss.dbeaver.model.impl.jdbc.JDBCRemoteInstance.initializeMainContext(JDBCRemoteInstance.java:102) at org.jkiss.dbeaver.model.impl.jdbc.JDBCRemoteInstance.<init>(JDBCRemoteInstance.java:61) at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.initializeRemoteInstance(JDBCDataSource.java:130) at org.jkiss.dbeaver.ext.generic.model.GenericDataSource.<init>(GenericDataSource.java:109) at org.jkiss.dbeaver.ext.generic.model.meta.GenericMetaModel.createDataSourceImpl(GenericMetaModel.java:91) at org.jkiss.dbeaver.ext.generic.GenericDataSourceProvider.openDataSource(GenericDataSourceProvider.java:106) at org.jkiss.dbeaver.registry.DataSourceDescriptor.openDataSource(DataSourceDescriptor.java:1191) at org.jkiss.dbeaver.registry.DataSourceDescriptor.connect(DataSourceDescriptor.java:1056) at org.jkiss.dbeaver.runtime.jobs.ConnectJob.run(ConnectJob.java:70) at org.jkiss.dbeaver.runtime.jobs.ConnectionTestJob.run(ConnectionTestJob.java:103) at io.cloudbeaver.service.core.impl.WebServiceCore.testConnection(WebServiceCore.java:654) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) ``` #### Server logs ```shell 04:57:56.990 [main] INFO io.cloudbeaver.server.CBPlatform - Available drivers: ClickHouse (Legacy),ClickHouse,Db2 for LUW,Db2 for IBM i,Firebird,Derby Server,DuckDB,Trino,H2 Embedded,H2 Embedded V.2,MS SQL Server / SQL Server,MySQL,MariaDB,Oracle,PostgreSQL,SQLite 05:10:39.682 [Test datasource connection] DEBUG o.j.d.registry.DataSourceDescriptor - Connect with 'jdbc:duckdb::memory:' (duckdb_jdbc-1876eb9233f-6c526c4c4af042a4) 05:10:39.701 [Test datasource connection] DEBUG o.j.d.m.i.AbstractExecutionContext - Execution context opened (jdbc:duckdb::memory:; Main; 0) 05:10:39.707 [Test datasource connection] DEBUG i.c.server.graphql.GraphQLEndpoint - GraphQL call failed at '/connection' io.cloudbeaver.DBWebException: Error connecting to database: Connection failed: Can't create driver instance at io.cloudbeaver.service.core.impl.WebServiceCore.testConnection(WebServiceCore.java:665) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at io.cloudbeaver.service.WebServiceBindingBase$ServiceInvocationHandler.invoke(WebServiceBindingBase.java:169) at jdk.proxy5/jdk.proxy5.$Proxy8.testConnection(Unknown Source) at io.cloudbeaver.service.core.WebServiceBindingCore.lambda$25(WebServiceBindingCore.java:139) at graphql.execution.instrumentation.dataloader.DataLoaderDispatcherInstrumentation.lambda$instrumentDataFetcher$0(DataLoaderDispatcherInstrumentation.java:86) at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:258) at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:197) at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72) at graphql.execution.Execution.executeOperation(Execution.java:160) at graphql.execution.Execution.execute(Execution.java:101) at graphql.GraphQL.execute(GraphQL.java:591) at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:521) at graphql.GraphQL.executeAsync(GraphQL.java:495) at graphql.GraphQL.execute(GraphQL.java:426) at io.cloudbeaver.server.graphql.GraphQLEndpoint.executeQuery(GraphQLEndpoint.java:254) at io.cloudbeaver.server.graphql.GraphQLEndpoint.executeSingleQuery(GraphQLEndpoint.java:200) at io.cloudbeaver.server.graphql.GraphQLEndpoint.doPost(GraphQLEndpoint.java:183) at javax.servlet.http.HttpServlet.service(HttpServlet.java:517) at javax.servlet.http.HttpServlet.service(HttpServlet.java:584) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764) at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665) at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1383) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1305) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) at org.eclipse.jetty.server.Server.handle(Server.java:563) at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505) at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100) at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:139) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:933) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1077) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: io.cloudbeaver.DBWebException: Connection failed: Can't create driver instance at io.cloudbeaver.service.core.impl.WebServiceCore.testConnection(WebServiceCore.java:656) ... 55 common frames omitted Caused by: org.jkiss.dbeaver.model.exec.DBCConnectException: Can't create driver instance at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.openConnection(JDBCDataSource.java:179) at org.jkiss.dbeaver.ext.generic.model.GenericDataSource.openConnection(GenericDataSource.java:143) at org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext.connect(JDBCExecutionContext.java:103) at org.jkiss.dbeaver.model.impl.jdbc.JDBCRemoteInstance.initializeMainContext(JDBCRemoteInstance.java:102) at org.jkiss.dbeaver.model.impl.jdbc.JDBCRemoteInstance.<init>(JDBCRemoteInstance.java:61) at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.initializeRemoteInstance(JDBCDataSource.java:130) at org.jkiss.dbeaver.ext.generic.model.GenericDataSource.<init>(GenericDataSource.java:109) at org.jkiss.dbeaver.ext.generic.model.meta.GenericMetaModel.createDataSourceImpl(GenericMetaModel.java:91) at org.jkiss.dbeaver.ext.generic.GenericDataSourceProvider.openDataSource(GenericDataSourceProvider.java:106) at org.jkiss.dbeaver.registry.DataSourceDescriptor.openDataSource(DataSourceDescriptor.java:1191) at org.jkiss.dbeaver.registry.DataSourceDescriptor.connect(DataSourceDescriptor.java:1056) at org.jkiss.dbeaver.runtime.jobs.ConnectJob.run(ConnectJob.java:70) at org.jkiss.dbeaver.runtime.jobs.ConnectionTestJob.run(ConnectionTestJob.java:103) at io.cloudbeaver.service.core.impl.WebServiceCore.testConnection(WebServiceCore.java:654) ... 55 common frames omitted Caused by: org.jkiss.dbeaver.DBException: Error creating driver 'DuckDB' instance. Most likely required jar files are missing. You should configure jars in driver settings. Reason: can't load driver class 'org.duckdb.DuckDBDriver' at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1188) at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1122) at org.jkiss.dbeaver.registry.driver.DriverDescriptor.getDriverInstance(DriverDescriptor.java:675) at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.getDriverInstance(JDBCDataSource.java:697) at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.openConnection(JDBCDataSource.java:177) ... 68 common frames omitted Caused by: java.lang.ClassNotFoundException: org.duckdb.DuckDBDriver at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:467) at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1186) ... 72 common frames omitted ``` #### Error when accessing driver properties (GUI) ```shell Error reading driver properties: Error creating driver 'DuckDB' instance. Most likely required jar files are missing. You should configure jars in driver settings. Reason: can't load driver class 'org.duckdb.DuckDBDriver' java.lang.ClassNotFoundException: org.duckdb.DuckDBDriver at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:467) at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1186) at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1122) at org.jkiss.dbeaver.registry.driver.DriverDescriptor.getDriverInstance(DriverDescriptor.java:675) at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSourceProvider.getConnectionProperties(JDBCDataSourceProvider.java:63) at org.jkiss.dbeaver.ext.generic.GenericDataSourceProvider.getConnectionProperties(GenericDataSourceProvider.java:115) at io.cloudbeaver.model.WebDatabaseDriverConfig.getDriverProperties(WebDatabaseDriverConfig.java:182) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at graphql.schema.PropertyDataFetcher.getPropertyViaGetterUsingPrefix(PropertyDataFetcher.java:185) at graphql.schema.PropertyDataFetcher.getPropertyViaGetterMethod(PropertyDataFetcher.java:174) at graphql.schema.PropertyDataFetcher.getPropertyViaGetter(PropertyDataFetcher.java:151) at graphql.schema.PropertyDataFetcher.get(PropertyDataFetcher.java:146) at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:258) at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:197) at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72) at graphql.execution.ExecutionStrategy.completeValueForObject(ExecutionStrategy.java:638) at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:425) at graphql.execution.ExecutionStrategy.completeValueForList(ExecutionStrategy.java:517) at graphql.execution.ExecutionStrategy.completeValueForList(ExecutionStrategy.java:472) at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:410) at graphql.execution.ExecutionStrategy.completeField(ExecutionStrategy.java:375) at graphql.execution.ExecutionStrategy.lambda$resolveFieldWithInfo$0(ExecutionStrategy.java:199) at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:684) at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:662) at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2168) at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:198) at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72) at graphql.execution.Execution.executeOperation(Execution.java:160) at graphql.execution.Execution.execute(Execution.java:101) at graphql.GraphQL.execute(GraphQL.java:591) at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:521) at graphql.GraphQL.executeAsync(GraphQL.java:495) at graphql.GraphQL.execute(GraphQL.java:426) ``` #### Server log ```shell 05:27:12.107 [qtp2008821270-60] DEBUG i.c.server.graphql.GraphQLEndpoint - GraphQL call failed at '/drivers[0]/driverProperties' io.cloudbeaver.DBWebException: Error reading driver properties: Error creating driver 'DuckDB' instance. Most likely required jar files are missing. You should configure jars in driver settings. Reason: can't load driver class 'org.duckdb.DuckDBDriver' at io.cloudbeaver.model.WebDatabaseDriverConfig.getDriverProperties(WebDatabaseDriverConfig.java:194) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at graphql.schema.PropertyDataFetcher.getPropertyViaGetterUsingPrefix(PropertyDataFetcher.java:185) at graphql.schema.PropertyDataFetcher.getPropertyViaGetterMethod(PropertyDataFetcher.java:174) at graphql.schema.PropertyDataFetcher.getPropertyViaGetter(PropertyDataFetcher.java:151) at graphql.schema.PropertyDataFetcher.get(PropertyDataFetcher.java:146) at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:258) at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:197) at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72) at graphql.execution.ExecutionStrategy.completeValueForObject(ExecutionStrategy.java:638) at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:425) at graphql.execution.ExecutionStrategy.completeValueForList(ExecutionStrategy.java:517) at graphql.execution.ExecutionStrategy.completeValueForList(ExecutionStrategy.java:472) at graphql.execution.ExecutionStrategy.completeValue(ExecutionStrategy.java:410) at graphql.execution.ExecutionStrategy.completeField(ExecutionStrategy.java:375) at graphql.execution.ExecutionStrategy.lambda$resolveFieldWithInfo$0(ExecutionStrategy.java:199) at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:684) at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:662) at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2168) at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:198) at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:72) at graphql.execution.Execution.executeOperation(Execution.java:160) at graphql.execution.Execution.execute(Execution.java:101) at graphql.GraphQL.execute(GraphQL.java:591) at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:521) at graphql.GraphQL.executeAsync(GraphQL.java:495) at graphql.GraphQL.execute(GraphQL.java:426) at io.cloudbeaver.server.graphql.GraphQLEndpoint.executeQuery(GraphQLEndpoint.java:254) at io.cloudbeaver.server.graphql.GraphQLEndpoint.executeSingleQuery(GraphQLEndpoint.java:200) at io.cloudbeaver.server.graphql.GraphQLEndpoint.doPost(GraphQLEndpoint.java:183) at javax.servlet.http.HttpServlet.service(HttpServlet.java:517) at javax.servlet.http.HttpServlet.service(HttpServlet.java:584) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764) at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665) at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1383) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1305) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) at org.eclipse.jetty.server.Server.handle(Server.java:563) at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505) at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100) at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:139) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:933) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1077) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: org.jkiss.dbeaver.DBException: Error creating driver 'DuckDB' instance. Most likely required jar files are missing. You should configure jars in driver settings. Reason: can't load driver class 'org.duckdb.DuckDBDriver' at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1188) at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1122) at org.jkiss.dbeaver.registry.driver.DriverDescriptor.getDriverInstance(DriverDescriptor.java:675) at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSourceProvider.getConnectionProperties(JDBCDataSourceProvider.java:63) at org.jkiss.dbeaver.ext.generic.GenericDataSourceProvider.getConnectionProperties(GenericDataSourceProvider.java:115) at io.cloudbeaver.model.WebDatabaseDriverConfig.getDriverProperties(WebDatabaseDriverConfig.java:182) ... 67 common frames omitted Caused by: java.lang.ClassNotFoundException: org.duckdb.DuckDBDriver at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:467) at org.jkiss.dbeaver.registry.driver.DriverDescriptor.loadDriver(DriverDescriptor.java:1186) ... 72 common frames omitted ``` #### *Describe the solution you'd like* I only found this closed issue https://github.com/dbeaver/cloudbeaver/issues/1159 in relation to DuckDB driver. I appreciate your assistance with this error. Perhaps, even better if you are able to include DuckDB driver in one of the releases in Docker Hub. Thank you.
kerem 2026-03-07 20:48:15 +03:00
  • closed this issue
  • added the
    x:duckdb
    label
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/cloudbeaver#363
No description provided.