You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Pritesh Gudge (Jira)" <ji...@apache.org> on 2026/03/25 02:25:00 UTC
[jira] [Updated] (FLINK-39320) Include Kafka record metadata in deserialization error message
[ https://issues.apache.org/jira/browse/FLINK-39320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pritesh Gudge updated FLINK-39320:
----------------------------------
Description:
When deserialization fails in KafkaRecordEmitter, the error message doesn't include which Kafka record caused the failure:
{code:java}
throw new IOException("Failed to deserialize consumer record due to", e);
{code}
In production environments with many topics and partitions, this makes root-cause analysis difficult. Engineers have to add custom logging and redeploy to locate the problematic record.
Proposed change: include topic, partition, and offset in the exception message in
[KafkaRecordEmitter.java|https://github.com/apache/flink-connector-kafka/blob/main/flink-connector-kafka/src/main/java/org/apache/flink/connector/kafka/source/reader/KafkaRecordEmitter.java#L55-L56]:
{code:java}
throw new IOException(
String.format(
"Failed to deserialize consumer record from topic=%s, partition=%d, offset=%d due to",
consumerRecord.topic(),
consumerRecord.partition(),
consumerRecord.offset()),
e);
{code}
This is a ~6-line change with no API or behavioral impact. The ConsumerRecord already has this metadata available.
was:
When deserialization fails in KafkaRecordEmitter, the error message doesn't include which Kafka record caused the failure:
{code:java}
throw new IOException("Failed to deserialize consumer record due to", e);
{code}
In production environments with many topics and partitions, this makes root-cause analysis difficult. Engineers have to add custom logging and redeploy to locate the problematic record.
Proposed change: include topic, partition, and offset in the exception message:
{code:java}
throw new IOException(
String.format(
"Failed to deserialize consumer record from topic=%s, partition=%d, offset=%d due to",
consumerRecord.topic(),
consumerRecord.partition(),
consumerRecord.offset()),
e);
{code}
This is a ~6-line change in KafkaRecordEmitter.java with no API or behavioral impact. The ConsumerRecord already has this metadata available.
> Include Kafka record metadata in deserialization error message
> --------------------------------------------------------------
>
> Key: FLINK-39320
> URL: https://issues.apache.org/jira/browse/FLINK-39320
> Project: Flink
> Issue Type: Improvement
> Components: Connectors / Kafka
> Reporter: Pritesh Gudge
> Priority: Minor
>
> When deserialization fails in KafkaRecordEmitter, the error message doesn't include which Kafka record caused the failure:
> {code:java}
> throw new IOException("Failed to deserialize consumer record due to", e);
> {code}
> In production environments with many topics and partitions, this makes root-cause analysis difficult. Engineers have to add custom logging and redeploy to locate the problematic record.
> Proposed change: include topic, partition, and offset in the exception message in
> [KafkaRecordEmitter.java|https://github.com/apache/flink-connector-kafka/blob/main/flink-connector-kafka/src/main/java/org/apache/flink/connector/kafka/source/reader/KafkaRecordEmitter.java#L55-L56]:
> {code:java}
> throw new IOException(
> String.format(
> "Failed to deserialize consumer record from topic=%s, partition=%d, offset=%d due to",
> consumerRecord.topic(),
> consumerRecord.partition(),
> consumerRecord.offset()),
> e);
> {code}
> This is a ~6-line change with no API or behavioral impact. The ConsumerRecord already has this metadata available.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)