Root cause
The internal schema history Kafka topic was deleted, compacted (cleanup.policy=compact destroys it), or its retention expired. Debezium uses this topic to replay the full DDL history needed to decode binary events.
How to fix
- Re-create the topic with correct settings:
kafka-topics.sh --bootstrap-server <broker>:9092 --create --topic schema-history --partitions 1 --config cleanup.policy=delete --config retention.ms=-1 - Then use snapshot.mode=recovery to rebuild the schema history from the live database.
- Never share the schema history topic between multiple connectors — each must have its own.
⚠ Never set cleanup.policy=compact on the schema history topic; compaction prunes DDL entries Debezium needs to decode old events. Also: do not use snapshot.mode=recovery if DDL changes were committed to the database after the last connector shutdown. The rebuilt schema won't match the DDL history needed to decode old events.
Official Debezium documentation ↗