TEXT_PLAIN is assigned to the CONTENT_TYPE header on producer String payloads. ORIGINAL_CONTENT_TYPE contains the original content type "text/*" , etc. on the Consumer side, the CONTENT_TYPE header of text/plain is used internally to dehydrate to a String (formerly it was x-xd/text-plain or something similar). The headers are then restored to the original state.