- Configure camel kafka consumer with with "breakOnFirstError" = "true"
- Produce a series of records to kafka record consumed by application
- Ensure offset is commited
- Produce more records
- Trigger an error when processing one of the records
- Application should only reconsume records after the last committed offset
- Application reconsumes all records on topic
Whether the erroneous behavior is triggered seem to be dependent on the offset the failing exchange has internally in the series of records in the poll.
I've created a project on github with a failing test that reproduces the issue: https://github.com/espeandr/camel-kafka-incorrectly-reconsumes-entire-topic-demo. I haven't been able to find a pattern to which "message offset" in the poll causes the error. In the test I've reproduced the error by forcing a max poll size as this simplifies the test setup. The issue is also reproducible without overriding maxPollSize.
I suspect that offset = 0 is committed when breaking out in the erroneous cases.