Skip to content

Record headers not passed to custom serde when deserializing key #4492

@twinprime

Description

@twinprime

Issue submitter TODO list

  • I've looked up my issue in FAQ
  • I've searched for an already existing issues here
  • I've tried running master-labeled docker image and the issue still persists there
  • I'm running a supported version of the application which is listed here

Describe the bug (actual behavior)

When ConsumerRecordDeserializer invoke Serde.Deserializer.deserialize, it pass in an empty list of RecordHeader instead of the actual RecordHeaders

var deserResult = keyDeserializer.deserialize(new RecordHeadersImpl(), rec.key().get())

My custom Serde require the record headers to find the encoding schema from our schema registry.

Expected behavior

ConsumerRecordDeserializer should pass the record headers to the deserialize function like what it does when deserializing values.

var deserResult = keyDeserializer.deserialize(new RecordHeadersImpl(rec.headers()), rec.key().get())

Your installation details

I reference the master branch code above:

var deserResult = keyDeserializer.deserialize(new RecordHeadersImpl(), rec.key().get());

Steps to reproduce

Problem should be obvious from the actual source code quoted above.

Screenshots

No response

Logs

No response

Additional context

My custom Serde cannot deserialize record key without information in the record headers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    status/triageIssues pending maintainers triagetype/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions