You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2026/09/23 17:42:00 UTC
[jira] [Commented] (NIFI-16349) StandardProtobufReader fails to compile Confluent Protobuf schemas with implicit field_meta options
[ https://issues.apache.org/jira/browse/NIFI-16349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18118442#comment-18118442 ]
ASF subversion and git services commented on NIFI-16349:
--------------------------------------------------------
Commit 4abef54d295f2c3f55c8d09fb1e61f78625259eb in nifi's branch refs/heads/main from Alaksiej Ščarbaty
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=4abef54d295 ]
NIFI-16349 Strip custom Protobuf options before Wire schema compilation (#11710)
Signed-off-by: David Handermann <ex...@apache.org>
> StandardProtobufReader fails to compile Confluent Protobuf schemas with implicit field_meta options
> ---------------------------------------------------------------------------------------------------
>
> Key: NIFI-16349
> URL: https://issues.apache.org/jira/browse/NIFI-16349
> Project: Apache NiFi
> Issue Type: Bug
> Reporter: Wojciech Trefon
> Assignee: Alaksiej Ščarbaty
> Priority: Major
> Time Spent: 40m
> Remaining Estimate: 0h
>
> h2. Summary
> {{StandardProtobufReader}} fails to compile Protobuf schemas retrieved from Confluent Schema Registry when a schema contains the {{(confluent.field_meta)}} custom option without an explicit {{confluent/meta.proto}} import.
> The failure occurs during schema compilation, before the message payload is decoded.
> h2. Background
> Confluent Schema Registry treats {{confluent/meta.proto}} as a built-in known dependency. Schemas generated from Kafka Connect logical types can therefore contain {{confluent.field_meta}} without listing {{confluent/meta.proto}} as a normal Schema Registry reference or explicit import.
> h2. Example schema
> {code:protobuf}
> syntax = "proto3";
> package example;
> message Value {
> optional int32 enabled = 31 [(confluent.field_meta) = {
> params: [
> {
> key: "connect.type",
> value: "int16"
> }
> ]
> }];
> }
> {code}
> h2. Steps to reproduce
> # Store or generate a Protobuf schema in Confluent Schema Registry that contains {{confluent.field_meta}} without an explicit {{confluent/meta.proto}} import or schema reference.
> # Serialize a message using the Confluent Protobuf wire format and the affected schema.
> # Configure {{StandardProtobufReader}} to use {{ConfluentEncodedSchemaReferenceReader}}, {{ConfluentSchemaRegistry}}, and {{ConfluentProtobufMessageNameResolver}}.
> # Read the serialized message.
> h2. Actual behavior
> Schema compilation fails with an error similar to:
> {code}
> com.squareup.wire.schema.SchemaException: unable to resolve option confluent.field_meta
> for field enabled
> in message example.Value
> {code}
> The message payload is not decoded.
> h2. Expected behavior
> {{StandardProtobufReader}} should be able to compile and read a schema accepted by Confluent Schema Registry when the schema uses Confluent's built-in metadata options.
> h2. Impact
> Messages using affected schemas cannot be consumed as records. Existing messages remain affected because their Confluent wire headers continue to reference the original schema identifiers.
> h2. Technical context
> {{ProtobufSchemaCompiler}} provides selected Wire runtime definitions for standard Protobuf types. It does not currently make {{confluent/meta.proto}} or its {{google/protobuf/descriptor.proto}} dependency available during compilation. Wire also requires the source schema to import the file that defines a custom option.
> Observed with the {{StandardProtobufReader}} implementation using Square Wire 6.4.6.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)