alibaba/canal · critical · IllegalArgumentException
managerAddress: can't not found config for [:]
Error message
managerAddress: can't not found config for [:]
What it means
Thrown by CanalLauncher when configClient.findServer(null) returns null — meaning the canal-manager server has no server config registered for this node's identity (registerIp:adminPort). The launcher had already validated credentials (error 297 guard passed), connected the PlainCanalConfigClient, and queried for the server config; a null response means the node is unknown to canal-admin.
Source
Thrown at deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalLauncher.java:84
if (StringUtils.isEmpty(name)) {
name = AddressUtils.getHostName();
}
String registerIp = CanalController.getProperty(properties, CanalConstants.CANAL_REGISTER_IP);
if (StringUtils.isEmpty(registerIp)) {
registerIp = AddressUtils.getHostIp();
}
final PlainCanalConfigClient configClient = new PlainCanalConfigClient(managerAddress,
user,
passwd,
registerIp,
Integer.parseInt(adminPort),
autoRegister,
autoCluster,
name);
PlainCanal canalConfig = configClient.findServer(null);
if (canalConfig == null) {
throw new IllegalArgumentException("managerAddress:" + managerAddress
+ " can't not found config for [" + registerIp + ":" + adminPort
+ "]");
}
Properties managerProperties = canalConfig.getProperties();
// merge local
managerProperties.putAll(properties);
int scanIntervalInSecond = Integer.valueOf(CanalController.getProperty(managerProperties,
CanalConstants.CANAL_AUTO_SCAN_INTERVAL,
"5"));
executor.scheduleWithFixedDelay(new Runnable() {
private PlainCanal lastCanalConfig;
public void run() {
try {
if (lastCanalConfig == null) {
lastCanalConfig = configClient.findServer(null);
} else {View on GitHub (pinned to 87be50e876)
Solutions
- Log in to canal-admin and create a server config whose IP:port matches the node's canal.register.ip and canal.admin.port.
- Enable auto-register (canal.admin.auto.register = true) so the node self-registers with canal-admin.
- Verify canal.register.ip resolves correctly (defaults to the host IP via AddressUtils.getHostIp) and matches the admin entry.
- Confirm the canal-admin address in canal.admin.manager is correct and reachable.
Example fix
# before canal.admin.manager = 127.0.0.1:8089 canal.admin.user = admin canal.admin.passwd = **** # node not registered in admin UI -> null config # after: enable auto-register canal.admin.auto.register = true canal.admin.register.name = canal-node-1
Defensive patterns
Strategy: validation
Validate before calling
// Before relying on findServer, confirm the node is registered String registerIp = properties.getProperty(CanalConstants.CANAL_REGISTER_IP); if (StringUtils.isEmpty(registerIp)) registerIp = AddressUtils.getHostIp(); // in canal-admin UI, create a server config matching registerIp:adminPort, // or enable canal.admin.auto.register = true
Try / catch
PlainCanal canalConfig = configClient.findServer(null);
if (canalConfig == null) {
throw new IllegalArgumentException("No server config in canal-manager for "
+ registerIp + ":" + adminPort + ". Register the node or enable canal.admin.auto.register.");
} Prevention
- Pre-register the node in canal-admin with the exact registerIp and adminPort.
- Enable canal.admin.auto.register for first-time bootstrap.
- Verify canal.register.ip matches what canal-admin expects.
When it happens
Trigger: canal.admin.manager is reachable and credentials are valid, but canal-admin has no server configuration entry matching this node's registerIp + adminPort. Common when the node has not been registered/auto-registered in the admin UI.
Common situations: First-time deployment where the node was not added in canal-admin's server-config page; registerIp mismatch (node advertises an IP admin doesn't expect); adminPort differs from the registered value; auto-register disabled and node not pre-created.
Related errors
- canal.admin.passwd is empty , pls check https://github.com/a
- canal.user = , but canal.passwd is empty , pls check https:
- unknow mode : for monitor
- can't find destination:
- unknown mode :
AI-assisted analysis of alibaba/canal@87be50e876 (2026-08-14).
Data as JSON: /api/errors/ab209b87af06f7dc.
Report an issue: GitHub.