alibaba/canal · error · CanalClientException

unsupported version at this client.

Error message

unsupported version at this client.

What it means

Error "unsupported version at this client." thrown in alibaba/canal.

Source

Thrown at client/src/main/java/com/alibaba/otter/canal/client/impl/SimpleCanalConnector.java:157

        } else {
            doDisconnect();
        }
    }

    private InetSocketAddress doConnect() throws CanalClientException {
        try {
            channel = SocketChannel.open();
            channel.socket().setSoTimeout(soTimeout);
            SocketAddress address = getAddress();
            if (address == null) {
                address = getNextAddress();
            }
            channel.connect(address);
            readableChannel = Channels.newChannel(channel.socket().getInputStream());
            writableChannel = Channels.newChannel(channel.socket().getOutputStream());
            Packet p = Packet.parseFrom(readNextPacket());
            if (p.getVersion() != 1) {
                throw new CanalClientException("unsupported version at this client.");
            }

            if (p.getType() != PacketType.HANDSHAKE) {
                throw new CanalClientException("expect handshake but found other type.");
            }
            //
            Handshake handshake = Handshake.parseFrom(p.getBody());
            supportedCompressions.add(handshake.getSupportedCompressions());
            //
            ByteString seed = handshake.getSeeds(); // seed for auth
            String newPasswd = password;
            if (password != null) {
                // encode passwd
                newPasswd = SecurityUtil.byte2HexStr(SecurityUtil.scramble411(password.getBytes(), seed.toByteArray()));
            }

            ClientAuth ca = ClientAuth.newBuilder()
                .setUsername(username != null ? username : "")

View on GitHub (pinned to 87be50e876)

Solutions

  1. Align canal client and canal server versions; the handshake packet protocol differs between incompatible versions.
  2. Upgrade the canal client dependency (com.alibaba.otter:canal.client) to match the deployed canal server version.

When it happens

Trigger: Thrown at client/src/main/java/com/alibaba/otter/canal/client/impl/SimpleCanalConnector.java:157 when the library encounters an invalid state.

Common situations: Server handshake version mismatch. Pin client and server to compatible canal versions; validate the negotiated version before proceeding and fail fast with both versions logged.


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