Enhanced Streams Errors and Reconnects
Handle gRPC failures, stale topics, duplicate events, and stream restarts.
Common status codes
Reconnect
Enhanced Streams do not accept an offset in SubscribeRequest.
After a disconnect:
- Wait with exponential backoff and jitter.
- Call
ListTopicsafter aNOT_FOUNDresponse. - Open a new subscription.
- Deduplicate events in your storage layer.
- Alert after repeated failures.
Deduplicate
Store these envelope fields:
topicpartitionoffsettimestamp_ms
Use a unique database key over topic, partition, and offset.
Parse JSON once
Python protobuf clients return payload as bytes.
event = json.loads(message.payload)JavaScript proto loaders often return a Buffer.
const event = JSON.parse(message.payload.toString("utf8"))Do not base64-decode either value.