Hi Mattison

Thanks for driving this issue. I don't think rolling back the Avro version
is reasonable in this case since
we already released the version used the new Avro version.

I noticed you already pushed out a PR
https://github.com/apache/pulsar/pull/25193
to fix this issue. +1 for this solution.

Regards,
Penghui

On Sun, Jan 4, 2026 at 4:19 PM mattison chao <[email protected]>
wrote:

> https://issues.apache.org/jira/browse/AVRO-4224
>
> On Mon, 5 Jan 2026 at 07:42, mattison chao <[email protected]>
> wrote:
>
> > Hi Pulsar developers,
> >
> >   I'm writing to bring to your attention a breaking change I've
> > encountered in Pulsar 4.1.x related to Protobuf schema handling. It seems
> > that the upgrade to a newer version of Avro in Pulsar has introduced
> > stricter namespace validation, which causes issues with schemas generated
> > by older tools.
> >
> >
> > *The Issue*
> >   When a Pulsar client that uses a Protobuf schema generated by an older
> > version of avro-protobuf tries to connect to a Pulsar 4.1.x broker, the
> > producer creation fails. The broker throws an InvalidSchemaDataException
> with
> > a message like:
> >
> >
> org.apache.pulsar.broker.service.schema.exceptions.InvalidSchemaDataException:
> Invalid schema definition data for PROTOBUF schema
> >
> >
> > This issue does not occur with Pulsar 4.0.x brokers.
> >
> >
> > *Root Cause*
> >   The root cause appears to be a change in Apache Avro, specifically the
> > introduction of stricter namespace validation in this PR (
> >
> https://github.com/apache/avro/pull/2513/files#diff-fee0506b175d3befabdbba7a07dfeb7755c923bed05b876d35d6598dbd7f277f
> > ).
> >
> >   Some older versions of `avro-protobuf` generate schemas with a $
> > character in the namespace, which is now considered invalid.
> >
> >
> > *How to Reproduce*
> >   I've created a small project that demonstrates the issue:
> > https://github.com/mattison/pulsar-avro-schema-breaking (
> > https://github.com/mattisonchao/pulsar-avro-schema-breaking)
> >
> >    1. Start a Pulsar 4.0.8 broker and run the client application.
> > Everything works as expected.
> >    2. Stop the 4.0.8 broker and start a 4.1.2 broker.
> >    3. Run the client application again. The producer will fail to be
> > created.
> >
> > *Discussion*
> >
> >   This change, while seemingly originating in Avro, creates a significant
> > breaking change for Pulsar users who may be relying on schemas generated
> by
> > older tools.
> >
> >   I'd like to start a discussion on how we can address this. Some
> > possibilities could be:
> >
> >    * Is it possible to rollback the version of Avro?
> >    * Could Pulsar provide a workaround to allow for these older schemas
> to
> > be used?
> >    * Should this be documented as a known breaking change with a clear
> > migration path for affected users?
> >    * Is there a way to relax the validation in Pulsar while still
> > benefiting from the newer Avro version?
> >
> >   I look forward to hearing your thoughts on this.
> >
> >   Thanks
> >
>

Reply via email to