data serialization ai_generated true

Schema registry conflict — Avro schema evolution breaks compatibility

ID: data/avro-schema-registry-version-conflict

Also available as: JSON · Markdown
82%Fix Rate
87%Confidence
4Evidence
2023-01-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
any active

Root Cause

Adding a required field without default value breaks backward compatibility.

generic

Workarounds

  1. 92% success Add new fields with default values to maintain backward compatibility
    {"name": "new_field", "type": "string", "default": ""}

    Sources: https://docs.confluent.io/platform/current/schema-registry/fundamentals/schema-evolution.html

  2. 85% success Use FULL_TRANSITIVE compatibility and test schemas before registration
    confluent schema-registry compatibility --check --subject mysubject --schema new.avsc

    Sources: https://docs.confluent.io/platform/current/schema-registry/fundamentals/schema-evolution.html

Dead Ends

Common approaches that don't work:

  1. Delete and re-register the schema 90% fail

    Deleting a schema does not remove it from consumer caches

  2. Change compatibility mode to NONE 80% fail

    NONE mode disables protection; consumers will crash on incompatible messages