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

  1. Log in to canal-admin and create a server config whose IP:port matches the node's canal.register.ip and canal.admin.port.
  2. Enable auto-register (canal.admin.auto.register = true) so the node self-registers with canal-admin.
  3. Verify canal.register.ip resolves correctly (defaults to the host IP via AddressUtils.getHostIp) and matches the admin entry.
  4. 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

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


AI-assisted analysis of alibaba/canal@87be50e876 (2026-08-14). Data as JSON: /api/errors/ab209b87af06f7dc. Report an issue: GitHub.