Null pointer exception with kafka streams application reset tool with --to-datetime

When I try to run the the reset tool with --to-datetime, such as:

kafka-streams-application-reset.sh --application-id "my-service" --bootstrap-servers 1.1.1.1:9092 --input-topics "my-topic" --to-datetime '2022-02-12T23:27:00.000' --execute

It throws an exception

Reset-offsets for input topics [my-topic]
Following input topics offsets will be reset to (for consumer group my-service)
ERROR: java.lang.NullPointerException: Cannot invoke "org.apache.kafka.clients.consumer.OffsetAndTimestamp.offset()" because the return value of "java.util.Map.get(Object)" is null
java.lang.NullPointerException: Cannot invoke "org.apache.kafka.clients.consumer.OffsetAndTimestamp.offset()" because the return value of "java.util.Map.get(Object)" is null
    at kafka.tools.StreamsResetter.resetToDatetime(StreamsResetter.java:506)
    at kafka.tools.StreamsResetter.maybeReset(StreamsResetter.java:448)
    at kafka.tools.StreamsResetter.maybeResetInputAndSeekToEndIntermediateTopicOffsets(StreamsResetter.java:397)
    at kafka.tools.StreamsResetter.run(StreamsResetter.java:167)
    at kafka.tools.StreamsResetter.run(StreamsResetter.java:135)
    at kafka.tools.StreamsResetter.main(StreamsResetter.java:665)

It works fine with --to-earliest or --to-offset instead of --to-datetime. This is with Kafka 2.8.1.
Thank you

Sounds like a bug to me.

Looking into the code, KafkaClient#offsetsForTimes() is used that might return null for a partition if there is record with corresponding timestamp.

Please file a bug report: https://issues.apache.org/jira/browse/KAFKA

1 Like

done: [KAFKA-13675] Null pointer exception with kafka streams application reset tool with --to-datetime - ASF JIRA

1 Like