faq java lang NoSuchFieldError LEADER_CHANGE_SCHEMA_HIGHEST_VERSION - padogrid/padogrid GitHub Wiki

I'm getting "java.lang.NoSuchFieldError: LEADER_CHANGE_SCHEMA_HIGHEST_VERSION" exception in the Confluent server log files during PadoGrid Kafka cluster startup.

Kafka servers log the following exception and fail to start.

java.lang.NoSuchFieldError: LEADER_CHANGE_SCHEMA_HIGHEST_VERSION
        at org.apache.kafka.raft.LeaderState.appendLeaderChangeMessage(LeaderState.java:98)
        at org.apache.kafka.raft.KafkaRaftClient.onBecomeLeader(KafkaRaftClient.java:437)
        at org.apache.kafka.raft.KafkaRaftClient.maybeTransitionToLeader(KafkaRaftClient.java:451)
        at org.apache.kafka.raft.KafkaRaftClient.handleVoteResponse(KafkaRaftClient.java:618)
        at org.apache.kafka.raft.KafkaRaftClient.handleResponse(KafkaRaftClient.java:1551)
        at org.apache.kafka.raft.KafkaRaftClient.handleInboundMessage(KafkaRaftClient.java:1673)
        at org.apache.kafka.raft.KafkaRaftClient.poll(KafkaRaftClient.java:2249)
        at kafka.raft.KafkaRaftManager$RaftIoThread.doWork(RaftManager.scala:53)
        at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:96)

This occurs when you have a Kafka client version that is not compatible with the Confluent client version. Confluent is a few versions behind Kafka OSS and still undergoing many changes as of writing (10/26/22), which may introduce incompatibility issues. This particular problem is seen when you have kafka-clients-*.jar in the front of the Confluent class path. Removing it from the class path will rid the exception.

As a best practice, when you start Confluent or Kafka, do not mix their jar files. Confluent tends to be a bit behind in versions which may lead to problems like this.