diff --git a/debezium-core/src/main/java/io/debezium/converters/recordandmetadata/RecordAndMetadataHeaderImpl.java b/debezium-core/src/main/java/io/debezium/converters/recordandmetadata/RecordAndMetadataHeaderImpl.java index f5faca0a4..ef68ea0d6 100644 --- a/debezium-core/src/main/java/io/debezium/converters/recordandmetadata/RecordAndMetadataHeaderImpl.java +++ b/debezium-core/src/main/java/io/debezium/converters/recordandmetadata/RecordAndMetadataHeaderImpl.java @@ -93,8 +93,13 @@ private T getValueFromHeaderOrByDefault(MetadataSourceValue metadataSourceVa private SchemaAndValue getHeaderSchemaAndValue(Headers headers, String headerName, boolean isOptional) { Header header = headers.lastHeader(headerName); - if (header == null && !isOptional) { - throw new RuntimeException("Header `" + headerName + "` was not provided"); + if (header == null) { + if (isOptional) { + return SchemaAndValue.NULL; + } + else { + throw new RuntimeException("Header `" + headerName + "` was not provided"); + } } return jsonHeaderConverter.toConnectData(null, header.value()); }