apache/druid · info
Ignored event type [ ] for node watcher of role [ ].
Error message
Ignored event type [%s] for node watcher of role [%s].
What it means
CuratorDruidNodeDiscoveryProvider's NodeRoleWatcher handleChildEvent received a Curator PathChildrenCacheEvent whose type is not one of the handled types (CHILD_ADDED, CHILD_UPDATED, CHILD_REMOVED, INITIALIZED). The event is dropped with a warning — typically CONNECTION_RECONNECTED / CONNECTION_SUSPENDED / CONNECTION_LOST events that reach the listener switch's default branch.
Solutions
- Usually informational — connection events are handled elsewhere via cache re-initialization; ignore if the node cache rebuilds afterward.
- If nodes appear stale after this warning, check for a subsequent cache reset/refresh or restart the affected Druid service.
- Verify ZK connectivity stability to reduce reconnect-related events.
- Upgrade Druid/Curator if unhandled event types cause missed node updates.
Defensive patterns
Strategy: retry
Prevention
- After reconnect warnings, verify the node cache was rebuilt (node count in logs).
- Keep ZK connections stable to minimize unhandled connection event types.
- Refresh/restart the watcher if discovery results look stale.
When it happens
Trigger: Curator emits a connection-level event (e.g. CONNECTION_RECONNECTED after a ZK reconnect, or other unhandled event types) to the node-role watcher's child listener; handleChildEvent's switch has no case for it.
Common situations: ZK client reconnects, session suspensions during network blips, or Curator version changes introducing event types the switch doesn't cover.
Related errors
- can't start.
- can't stop.
- can't stop.
- Could not close old leader latch; continuing with new one…
- Could not stop server within %,d millis after unhandled…
AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07).
Data as JSON: /api/errors/292937f801e7d654.
Report an issue: GitHub.
Appendix: source
Thrown at server/src/main/java/org/apache/druid/curator/discovery/CuratorDruidNodeDiscoveryProvider.java:249
void handleChildEvent(PathChildrenCacheEvent event)
{
synchronized (lock) {
try {
switch (event.getType()) {
case CHILD_ADDED: {
childAdded(event);
break;
}
case CHILD_REMOVED: {
childRemoved(event);
break;
}
case INITIALIZED: {
baseNodeRoleWatcher.cacheInitialized();
break;
}
default: {
log.warn("Ignored event type [%s] for node watcher of role [%s].", event.getType(), nodeRole.getJsonName());
}
}
}
catch (Exception ex) {
log.error(ex, "Unknown error in node watcher of role [%s].", nodeRole.getJsonName());
}
}
}
@GuardedBy("lock")
private void childAdded(PathChildrenCacheEvent event) throws IOException
{
final byte[] data = getZkDataForNode(event.getData());
if (data == null) {
log.error(
"Failed to get data for path [%s]. Ignoring a child addition event.",
event.getData().getPath()
);View on GitHub (pinned to 9b90983fd2)