Heya Paolo, Thanks for catching this and providing a fix! It makes sense to me that since this is part of Kafka Connect's REST API it is public and therefore we can't change the output without a corresponding KIP. I have reviewed the PR and I am happy to cherry-pick it once it has made it into trunk and include it in RC1.
Best, Christo On Fri, 16 Jan 2026 at 10:33, Paolo Patierno <[email protected]> wrote: > > FYI I opened https://issues.apache.org/jira/browse/KAFKA-20076 and also a > corresponding PR to fix the issue here > https://github.com/apache/kafka/pull/21318 > It's against trunk but I think we should (if/when approved) cherry-pick to > 4.2.0. > > Thanks, > Paolo > > On Thu, 15 Jan 2026 at 17:01, Paolo Patierno <[email protected]> > wrote: > > > Hello, > > I think I have found a regression. > > When running Kafka Connect and submitting an HTTP GET request to the > > /connector-plugins endpoint, the JSON serialized "type" filed in the body > > response is now uppercase instead of being lowercase as in the past. > > Following a comparison between Apache Kafka 4.1 ... > > > > > > [{"class":"org.apache.kafka.connect.mirror.MirrorCheckpointConnector","type":"source","version":"4.1.1"},{"class":"org.apache.kafka.connect.mirror.MirrorHeartbeatConnector","type":"source","version":"4.1.1"},{"class":"org.apache.kafka.connect.mirror.MirrorSourceConnector","type":"source","version":"4.1.1"}] > > > > ... and the current Apache Kafka 4.2 RC0 > > > > > > [{"class":"org.apache.kafka.connect.mirror.MirrorCheckpointConnector","type":"SOURCE","version":"4.2.0"},{"class":"org.apache.kafka.connect.mirror.MirrorHeartbeatConnector","type":"SOURCE","version":"4.2.0"},{"class":"org.apache.kafka.connect.mirror.MirrorSourceConnector","type":"SOURCE","version":"4.2.0"}] > > > > As you can see it's "source" vs "SOURCE". I had same result with "sink" vs > > "SINK". > > > > I think this is due to the last change from converting the PluginInfo from > > being a class to a record which had an impact together with the JSON > > serialization. > > When it was a class, a dedicated type.toString() was used which explicitly > > does a lower case transformation. > > As a record, the "type" field is directly serialized by JSON by using the > > enum values from PluginType which are all uppercase of course. > > It means that this issue affects all the other values as well the way they > > are serialized (not just SINK, SOURCE but also CONVERTER, TRANSFORMATION, > > and so on). > > > > If you like I could provide a contribution for that. > > > > Thanks, > > Paolo. > > > > On Tue, 13 Jan 2026 at 17:04, Christo Lolov <[email protected]> > > wrote: > > > >> Hello Kafka users, developers and client-developers, > >> > >> This is the RC0 candidate for release of Apache Kafka 4.2.0. > >> > >> This release has many exciting changes such as Kafka Queues being > >> marked as production-ready, dead letter queues in Kafka Streams, a > >> preview of the new Kafka Streams rebalance protocol, improved > >> consistency across Kafka CLI arguments and metrics! > >> > >> I will raise a PR with a new blog post to the kafka-site repository in > >> the next 24 hours and share the link as a reply to this thread. > >> > >> Release notes for the 4.2.0 release: > >> https://dist.apache.org/repos/dist/dev/kafka/4.2.0-rc0/RELEASE_NOTES.html > >> > >> *** Please download, test and vote by Wednesday, January 21, 10am UTC > >> > >> Kafka's KEYS file containing PGP keys we use to sign the release: > >> https://kafka.apache.org/KEYS > >> > >> * Release artifacts to be voted upon (source and binary): > >> https://dist.apache.org/repos/dist/dev/kafka/4.2.0-rc0/ > >> > >> * Docker release artifacts to be voted upon: > >> apache/kafka:4.2.0-rc0 > >> apache/kafka-native:4.2.0-rc0 > >> > >> * Maven artifacts to be voted upon: > >> https://repository.apache.org/content/groups/staging/org/apache/kafka/ > >> > >> * Javadoc: > >> https://dist.apache.org/repos/dist/dev/kafka/4.2.0-rc0/javadoc/index.html > >> > >> * Tag to be voted upon (off 4.2 branch) is the 4.2.0 tag: > >> https://github.com/apache/kafka/releases/tag/4.2.0-rc0 > >> > >> * Documentation: > >> I will raise a PR with the changes to the kafka-site repository in the > >> next 24 hours and share the link as a reply to this thread. > >> > >> * Protocol: > >> I will raise a PR with the changes to the kafka-site repository in the > >> next 24 hours and share the link as a reply to this thread. > >> > >> * Successful CI builds for the 4.2 branch: > >> Unit/integration tests: > >> https://github.com/apache/kafka/actions/runs/20953445348/job/60245258542 > >> System tests: My environment needs to be recreated before I can share > >> results from my end, so any results shared by voters would be greatly > >> appreciated! > >> > >> * Successful Docker Image Github Actions Pipeline for 4.2 branch: > >> Docker Build Test Pipeline (JVM): > >> https://github.com/apache/kafka/actions/runs/20962291986 > >> Docker Build Test Pipeline (Native): > >> https://github.com/apache/kafka/actions/runs/20958037429 > >> > >> Note - when I run the quickstart against the JVM Docker image I need > >> to specify the process.roles. I do not seem to need to specify the > >> process.roles if I run the 4.1.1 image. I will run this once again > >> tomorrow in another clean environment, but if somebody else can > >> confirm/deny whether they can reproduce this beforehand this would > >> also be greatly appreciated! > >> > >> Thanks, > >> Christo > >> > > > > > > -- > > Paolo Patierno > > > > *Senior Principal Software Engineer @ IBM**CNCF Ambassador* > > > > Twitter : @ppatierno <http://twitter.com/ppatierno> > > Linkedin : paolopatierno <http://it.linkedin.com/in/paolopatierno> > > GitHub : ppatierno <https://github.com/ppatierno> > > > > > -- > Paolo Patierno > > *Senior Principal Software Engineer @ IBM**CNCF Ambassador* > > Twitter : @ppatierno <http://twitter.com/ppatierno> > Linkedin : paolopatierno <http://it.linkedin.com/in/paolopatierno> > GitHub : ppatierno <https://github.com/ppatierno>
