DBeaver to Elasticsearch connectivity is OK but fails on listing tables

On DBeaver v23.1.0, we created a connection to an instance of Elasticsearch v8.6.1.

The connectivity test, and logging in are OK. However, when clicking on the icons to expand the "Tables", it got an error saying, ... The [8.8.2] version of the [jdbc] client is not compatible with Elasticsearch version [8.6.1] ....

Our Question:

We wonder how to fix this error and start using DBeaver as a GUI client of Elasticsearch.

And we are still on a learning curve of Elasticsearch, so we highly appreciate any hints and suggestions.

Technical Details:

  • The full trace of error:
Server sent bad type [action_request_validation_exception]. Original type was [Validation Failed: 1: The [8.8.2] version of the [jdbc] client is not compatible with Elasticsearch version [8.6.1];]. [org.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: The [8.8.2] version of the [jdbc] client is not compatible with Elasticsearch version [8.6.1];
	at org.elasticsearch.server@8.6.1/org.elasticsearch.action.ValidateActions.addValidationError(ValidateActions.java:15)
	at org.elasticsearch.xpack.sql.action.AbstractSqlQueryRequest.validate(AbstractSqlQueryRequest.java:291)
	at org.elasticsearch.xpack.sql.action.SqlQueryRequest.validate(SqlQueryRequest.java:149)
	at org.elasticsearch.server@8.6.1/org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:45)
	at org.elasticsearch.server@8.6.1/org.elasticsearch.tasks.TaskManager.registerAndExecute(TaskManager.java:202)
	at org.elasticsearch.server@8.6.1/org.elasticsearch.client.internal.node.NodeClient.executeLocally(NodeClient.java:112)
	at org.elasticsearch.server@8.6.1/org.elasticsearch.rest.action.RestCancellableNodeClient.doExecute(RestCancellableNodeClient.java:81)
	at org.elasticsearch.server@8.6.1/org.elasticsearch.client.internal.support.AbstractClient.execute(AbstractClient.java:380)
	at org.elasticsearch.xpack.sql.plugin.RestSqlQueryAction.lambda$prepareRequest$0(RestSqlQueryAction.java:52)
	at org.elasticsearch.server@8.6.1/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:103)
	at org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:123)
	at org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:92)
	at org.elasticsearch.server@8.6.1/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:398)
	at org.elasticsearch.server@8.6.1/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:532)
	at org.elasticsearch.server@8.6.1/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:313)
	at org.elasticsearch.server@8.6.1/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:379)
	at org.elasticsearch.server@8.6.1/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:460)
	at org.elasticsearch.server@8.6.1/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:353)
	at org.elasticsearch.transport.netty4@8.6.1/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:128)
...
  • The Elasticsearch version information:
{
  "name": "65f14b77e170",
  "cluster_name": "docker-cluster",
  "cluster_uuid": "vP93cWe0QvqCN8-dEaowsA",
  "version": {
    "number": "8.6.1",
    "build_flavor": "default",
    "build_type": "docker",
    "build_hash": "180c9830da956993e59e2cd70eb32b5e383ea42c",
    "build_date": "2023-01-24T21:35:11.506992272Z",
    "build_snapshot": false,
    "lucene_version": "9.4.2",
    "minimum_wire_compatibility_version": "7.17.0",
    "minimum_index_compatibility_version": "7.0.0"
  },
  "tagline": "You Know, for Search"
}

Pretty sure You need to download the correct / compatible version of the driver as the error states

Navigate here
https://www.elastic.co/downloads/past-releases#jdbc-client

Then pick the 8.6.1 Version

Always best to match versions of Clients and Servers!

1 Like

Thank you, @stephenb.

After replacing the JDBC driver in the context of "Connection > Driver Settings > Libraries", we are encountering another error now saying, current license is non-compliant for [jdbc].

A quick search led me to this post, saying the JDBC driver requires certain licenses. And the command GET /_license shows the current license information as below:

{
  "license": {
    "status": "active",
    "uid": "b4c33bd2-c123-4171-937f-4a2e6feac74c",
    "type": "basic",
    "issue_date": "2023-02-17T22:30:41.285Z",
    "issue_date_in_millis": 1676673041285,
    "max_nodes": 1000,
    "max_resource_units": null,
    "issued_to": "docker-cluster",
    "issuer": "elasticsearch",
    "start_date_in_millis": -1
  }
}

The official document provides a way to start a 30-day trial by the command POST /_license/start_trial?acknowledge=true.

So, I wonder if this project takes longer than 30 days, can we get an extension? Or is there something like a free developer license?

The trial is bound to the data (directory). Could you start from scratch, reimport the necessary data for development, and then do another round of 30 days trial? That should generally be the easiest approach for development; when you don't need to keep production data around and available.

2 Likes

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.