Kafka Error UNSUPPORTED_FOR_MESSAGE_FORMAT
Error code 43 · Non-retriable Producer
The message format version on the broker does not support the request.
Common Causes
- log.message.format.version on the broker is set to an old value (e.g., 0.10.0) while the producer is using a feature requiring a newer magic byte (e.g., idempotent/transactional production)
- Topic was created when broker was on an older version and inherited an old message format; broker was upgraded but format version not bumped
- Producer using record headers or exactly-once semantics against a topic with message.format.version < 0.11
Solutions
- After completing a full cluster upgrade, update log.message.format.version to the new broker version in server.properties and perform a rolling restart
- Per-topic override on older clusters that still use this setting: kafka-configs.sh --bootstrap-server localhost:9092 --entity-type topics --entity-name <topic> --alter --add-config message.format.version=<new-version>
- Ensure the upgrade sequence is followed: upgrade all brokers first, then bump inter.broker.protocol.version, then bump log.message.format.version
Diagnostic Commands
# Check topic message format version
kafka-configs.sh --bootstrap-server localhost:9092 --entity-type topics --entity-name <topic> --describe | grep message.format
# Check broker protocol version settings
kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers --entity-default --describe | grep -E 'log.message.format|inter.broker.protocol'Related APIs
This error can be returned by: Produce · WriteTxnMarkers
Debugging Kafka errors? Conduktor Console gives you real-time visibility into your cluster. Explore all errors in the Error Decoder.