Skip to content

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

Open
@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 main-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 main 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

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/serdeSerialization & Deserialization (plugins)scope/backendRelated to backend changesstatus/triage/completedAutomatic triage completedtype/bugSomething isn't working

    Projects

    Status

    Active

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions