Current state: "Under Discussion"
Discussion thread: here
JIRA: KAFKA-4808 - send of null key to a compacted topic should throw error back to user Patch Available
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
Currently when a user sends a null key to a log compacted topic, the broker returns
CorruptRecordException, which is a retriable exception. As such, the producer keeps retrying until retries are exhausted or request.timeout.ms expires and eventually throws a
TimeoutException. This is confusing and not user-friendly.
The broker should throw a non-retriable exception with a message explaining the error.
New or Changed Public Interfaces
This KIP introduces a new error type
It introduces a new non-retriable exception
InvalidRecordKeyException. Going forward user request will fail without doing retries, if they try to produce to a log compacted topic with a null key.
Add a new error code and exception as follows :
Error Code :
InvalidRecordKeyException("Message key is invalid."))
Compatibility, Deprecation, and Migration Plan
We will only return this exception for ProduceRequest V3 or higher. The older version of ProduceRequest will still get the CorruptRecordException.