diff --git a/apm-dist/src/main/assembly/binary.xml b/apm-dist/src/main/assembly/binary.xml
index 27a9499bba..ca82e01f38 100644
--- a/apm-dist/src/main/assembly/binary.xml
+++ b/apm-dist/src/main/assembly/binary.xml
@@ -60,6 +60,7 @@
metadata-service-mapping.yaml
trace-sampling-policy-settings.yml
hierarchy-definition.yml
+ bydb.dependencies.properties
oal/*.oal
fetcher-prom-rules/*.yaml
envoy-metrics-rules/**
diff --git a/docs/en/setup/backend/storages/banyandb.md b/docs/en/setup/backend/storages/banyandb.md
index 5019604dc0..ec5f89e744 100644
--- a/docs/en/setup/backend/storages/banyandb.md
+++ b/docs/en/setup/backend/storages/banyandb.md
@@ -10,6 +10,7 @@ bydb.version=x.y
# BanyanDB API version is the version number of the BanyanDB query APIs
# OAP server has bundled implementation of BanyanDB Java client.
# Please check BanyanDB documentation for the API version compatibility.
+# https://skywalking.apache.org/docs/skywalking-banyandb/next/installation/versions
# Each `bydb.api.version` could have multiple compatible release version(`bydb.version`).
bydb.api.version=x.y
```
diff --git a/oap-server/server-starter/src/main/resources/bydb.dependencies.properties b/oap-server/server-starter/src/main/resources/bydb.dependencies.properties
index 78b00cd001..cbe463a24a 100644
--- a/oap-server/server-starter/src/main/resources/bydb.dependencies.properties
+++ b/oap-server/server-starter/src/main/resources/bydb.dependencies.properties
@@ -19,5 +19,6 @@ bydb.version=0.8
# BanyanDB API version is the version number of the BanyanDB query APIs
# OAP server has bundled implementation of BanyanDB Java client.
# Please check BanyanDB documentation for the API version compatibility.
+# https://skywalking.apache.org/docs/skywalking-banyandb/next/installation/versions
# Each `bydb.api.version` could have multiple compatible release version(`bydb.version`).
bydb.api.version=0.8
\ No newline at end of file
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java
index e324a5e231..b2b0a647fd 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java
@@ -21,9 +21,11 @@ package org.apache.skywalking.oap.server.storage.plugin.banyandb;
import io.grpc.Status;
import io.grpc.StatusRuntimeException;
import java.io.IOException;
+import java.io.InputStream;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Properties;
import lombok.extern.slf4j.Slf4j;
import org.apache.skywalking.banyandb.common.v1.BanyandbCommon;
import org.apache.skywalking.banyandb.common.v1.BanyandbCommon.Group;
@@ -75,6 +77,22 @@ public class BanyanDBStorageClient implements Client, HealthCheckable {
@Override
public void connect() throws Exception {
this.client.connect();
+ final Properties properties = new Properties();
+ try (final InputStream resourceAsStream
+ = BanyanDBStorageClient.class.getClassLoader()
+ .getResourceAsStream(
+ "bydb.dependencies.properties")) {
+ if (resourceAsStream == null) {
+ throw new IllegalStateException("bydb.dependencies.properties not found");
+ }
+ properties.load(resourceAsStream);
+ }
+ final String expectedApiVersion = properties.getProperty("bydb.api.version");
+ if (!Arrays.stream(COMPATIBLE_SERVER_API_VERSIONS).anyMatch(v -> v.equals(expectedApiVersion))) {
+ throw new IllegalStateException("Inconsistent versions between bydb.dependencies.properties and codes(" +
+ String.join(", ", COMPATIBLE_SERVER_API_VERSIONS) + ").");
+ }
+
BanyandbCommon.APIVersion apiVersion;
try {
apiVersion = this.client.getAPIVersion();