See https://stackoverflow.com/questions/54983775/configuring-spring-kafka-to-use-deadletterpublishingrecoverer/54985161#54985161 When a deserialization exception occurs, the `record.value()` is null and the exception is in a header. The publisher could put the original payload in the value.