alibaba/canal · error · IllegalStateException
Extension instance(name: {}, class: {}) could not be instan
Error message
Extension instance(name: {}, class: {}) could not be instantiated: {} What it means
Error "Extension instance(name: {}, class: {}) could not be instantiated: {}" thrown in alibaba/canal.
Source
Thrown at client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/ExtensionLoader.java:177
return getExtension(cachedDefaultName);
}
@SuppressWarnings("unchecked")
private T createExtension(String name) {
Class<?> clazz = getExtensionClasses().get(name);
if (clazz == null) {
throw new IllegalStateException("Extension instance(name: " + name + ", class: " + type
+ ") could not be instantiated: class could not be found");
}
try {
T instance = (T) EXTENSION_INSTANCES.get(clazz);
if (instance == null) {
EXTENSION_INSTANCES.putIfAbsent(clazz, (T) clazz.newInstance());
instance = (T) EXTENSION_INSTANCES.get(clazz);
}
return instance;
} catch (Throwable t) {
throw new IllegalStateException("Extension instance(name: " + name + ", class: " + type
+ ") could not be instantiated: " + t.getMessage(),
t);
}
}
@SuppressWarnings("unchecked")
private T createExtension(String name, String key) {
Class<?> clazz = getExtensionClasses().get(name);
if (clazz == null) {
throw new IllegalStateException("Extension instance(name: " + name + ", class: " + type
+ ") could not be instantiated: class could not be found");
}
try {
T instance = (T) EXTENSION_KEY_INSTANCE.get(name + "-" + key);
if (instance == null) {
EXTENSION_KEY_INSTANCE.putIfAbsent(name + "-" + key, clazz.newInstance());
instance = (T) EXTENSION_KEY_INSTANCE.get(name + "-" + key);
}View on GitHub (pinned to 87be50e876)
Solutions
- Inspect the instantiation error message; ensure the extension class has a public no-arg constructor and its dependencies are present.
- Fix classloading conflicts if multiple versions of the adapter jar are on the classpath.
When it happens
Trigger: Thrown at client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/support/ExtensionLoader.java:177 when the library encounters an invalid state.
Common situations: Extension class found but instantiation failed. Require a public no-arg constructor on extensions and propagate the root cause so plugin authors can fix construction errors.
AI-assisted analysis of alibaba/canal@87be50e876 (2026-08-14).
Data as JSON: /api/errors/03bcb4facc88984c.
Report an issue: GitHub.