SchemaRegistryTimeoutException data network_error ai_generated true

SchemaRegistryTimeoutException: timeout waiting for schema registration

ID: data/avro-schema-registry-timeout

Also available as: JSON · Markdown · 中文
75%Fix Rate
82%Confidence
1Evidence
2024-02-10First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
confluent-kafka 7.5.0 active
avro 1.11.3 active
kafka-avro-serializer 7.5.0 active

Root Cause

Kafka Schema Registry client timed out while waiting for the registry to acknowledge schema registration due to network congestion or registry overload.

generic

中文

由于网络拥塞或注册表过载,Kafka Schema Registry客户端在等待注册表确认模式注册时超时。

Official Documentation

https://docs.confluent.io/platform/current/schema-registry/develop/api.html

Workarounds

  1. 80% success Check Schema Registry health: `curl -f http://schema-registry:8081/subjects` — if unreachable, restart the registry service or check network/firewall rules.
    Check Schema Registry health: `curl -f http://schema-registry:8081/subjects` — if unreachable, restart the registry service or check network/firewall rules.
  2. 70% success In producer config, set `schema.registry.request.timeout.ms=10000` and `schema.registry.max.retries=5` to allow transient failures to recover.
    In producer config, set `schema.registry.request.timeout.ms=10000` and `schema.registry.max.retries=5` to allow transient failures to recover.
  3. 75% success If using Confluent Schema Registry with Docker, ensure the registry container has enough resources: `docker update --memory=2g schema-registry` and check `docker logs schema-registry` for OOM errors.
    If using Confluent Schema Registry with Docker, ensure the registry container has enough resources: `docker update --memory=2g schema-registry` and check `docker logs schema-registry` for OOM errors.

中文步骤

  1. Check Schema Registry health: `curl -f http://schema-registry:8081/subjects` — if unreachable, restart the registry service or check network/firewall rules.
  2. In producer config, set `schema.registry.request.timeout.ms=10000` and `schema.registry.max.retries=5` to allow transient failures to recover.
  3. If using Confluent Schema Registry with Docker, ensure the registry container has enough resources: `docker update --memory=2g schema-registry` and check `docker logs schema-registry` for OOM errors.

Dead Ends

Common approaches that don't work:

  1. Increase the schema registry request timeout to a very high value (e.g., 5 minutes) 70% fail

    If the registry is down or network is completely broken, no timeout value will help; it just delays failure.

  2. Restart the Kafka broker to 'refresh' the schema registry connection 90% fail

    Schema registry is a separate service from Kafka brokers; restarting brokers doesn't affect registry connectivity.

  3. Disable schema validation entirely in the producer config 80% fail

    This bypasses the error but can lead to data corruption downstream if schemas are incompatible.