When working on my own implementation of the wire protocol, via a copy and paste error, I accidentally sent an OffsetCommit message to the ConsumerMetadata api. This was clearly my mistake but what surprised me is that I got a valid ConsumerMetadata response back with no error.
Digging a little deeper this is because both messages expect a string in the first position, so when the OffsetCommit (much larger) message is parsed as a ConsumerMetadata message everything parses okay on the server side. The only issue is that there are many bytes left over in the sent message since OffsetCommit has many more fields following the initial string. Knowing that this is client/dev error, I still expected Kafka to fail my message based on expected message size. If Kafka parsing messages would be strict about "left over" bytes it could catch this. Should this check be implemented in the Kafka server when parsing all messages? If so I can open a Jira. Thank you, Grant -- Grant Henke Solutions Consultant | Cloudera ghe...@cloudera.com | twitter.com/ghenke <http://twitter.com/gchenke> | linkedin.com/in/granthenke