apache/seatunnel · warning
RetryingMetaStoreClient found but no compatible getProxy met
Error message
RetryingMetaStoreClient found but no compatible getProxy method, falling back to HiveMetaStoreClient
What it means
HiveMetaStoreCatalog tries to build a RetryingMetaStoreClient via reflection on its static getProxy method, for resilience across Hive versions. If the class is found but no getProxy method with the expected signature exists, it logs this warning and returns null, causing a plain HiveMetaStoreClient fallback (no built-in retry).
Source
Thrown at seatunnel-connectors-v2/connector-hive/src/main/java/org/apache/seatunnel/connectors/seatunnel/hive/utils/HiveMetaStoreCatalog.java:236
*/
private static Class<?> loadClass(String className, HiveConf hiveConf)
throws ClassNotFoundException {
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
if (contextClassLoader != null) {
try {
return Class.forName(className, true, contextClassLoader);
} catch (ClassNotFoundException ignored) {
}
}
return hiveConf.getClassByName(className);
}
private IMetaStoreClient tryCreateRetryingClient(HiveConf hiveConf) {
try {
Class<?> clazz = Class.forName(RETRYING_METASTORE_CLIENT_CLASS_NAME);
Method getProxyMethod = getProxyMethod(clazz);
if (getProxyMethod == null) {
log.warn(RETRYING_METASTORE_CLIENT_NO_COMPATIBLE_GET_PROXY_MESSAGE);
return null;
}
Object proxy = getProxyMethod.invoke(null, hiveConf, true);
if (proxy instanceof IMetaStoreClient) {
log.info(
"Using RetryingMetaStoreClient for Hive metastore connection [uris={}]",
hiveConf.get("hive.metastore.uris"));
return (IMetaStoreClient) proxy;
}
log.warn(RETRYING_METASTORE_CLIENT_NO_COMPATIBLE_GET_PROXY_MESSAGE);
return null;
} catch (ClassNotFoundException e) {
log.debug("RetryingMetaStoreClient not found, falling back to HiveMetaStoreClient", e);
return null;
} catch (Exception e) {
log.warn(
"Failed to create RetryingMetaStoreClient proxy, falling back to HiveMetaStoreClient",View on GitHub (pinned to cf67b549a7)
Solutions
- Align the Hive metastore client version on the classpath with the version SeaTunnel's Hive connector expects
- Inspect getProxyMethod(clazz) to see which signature it looks for and confirm your hive-exec/metastore jar provides it
- Accept the fallback if retrying behavior is not critical — HiveMetaStoreClient still works
- Pin an explicit hive-exec dependency version to avoid transitive version drift
Defensive patterns
Strategy: fallback
Validate before calling
Class<?> c = Class.forName("org.apache.hadoop.hive.metastore.RetryingMetaStoreClient");
boolean ok = java.util.Arrays.stream(c.getMethods()).anyMatch(m -> m.getName().equals("getProxy")); Try / catch
try {
client = retryingClientFactory(hiveConf);
} catch (Exception e) {
client = new HiveMetaStoreClient(hiveConf); // fallback
} Prevention
- Keep hive-exec/metastore jars consistent with the connector's expected Hive version
- Avoid mixing multiple Hive jars on the classpath
- Treat this warning as 'no auto-retry' and add application-level retry if needed
When it happens
Trigger: tryCreateRetryingClient() loads RETRYING_METASTORE_CLIENT_CLASS_NAME successfully, but getProxyMethod(clazz) returns null because no compatible getProxy(Configuration,boolean)-style method exists in the classpath's Hive version.
Common situations: Hive version mismatch: connector built against one Hive release while the runtime classpath contains another with a changed getProxy signature; shaded/mixed Hive jars.
Understand the failure class
Background: "is not a compatible type" / "cannot merge" errors: when a value's type doesn't match what the library requires — this error's family across 65 libraries.
Related errors
- Failed to create RetryingMetaStoreClient proxy, falling back
- GET_HIVE_TABLE_INFORMATION_FAILED
- Hive metastore_uri is required for regex table discovery (us
- No hive tables matched the regex pattern. Please check `tabl
- Unable to load Hive metastore client factory ${clientFactory
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/6e4c05157727e783.
Report an issue: GitHub.