apache/druid · warning
Server[ ] might not yet be synced successfully. We will…
Error message
Server[%s] might not yet be synced successfully. We will continue to retry that in the background.
What it means
HttpServerInventoryView.serverInventoryInitialized logs a warning listing servers that had not completed at least one successful inventory sync when initialization completed. It means the view's server list is incomplete and it will keep retrying those servers in the background.
Solutions
- Verify the listed servers are running and reachable on their druid.host:port from this node
- Check the historicals' logs for errors serving /druid-internal/v1/listSorting... inventory endpoints
- Fix network/DNS/firewall issues between the coordinator/broker and the historicals
- Confirm druid.serverview.* http timeouts are adequate for large segment counts; restart the view holder after fixing connectivity
Example fix
// before druid.host=10.0.0.5:8083 // unreachable internal IP // after druid.host=cluster-internal-5.druid.svc:8083 // resolvable, routable from coordinators/brokers
Defensive patterns
Strategy: retry
Validate before calling
// probe server reachability before startup completion boolean healthy = ping(serverHost, serverPort, timeoutMs);
Try / catch
// rely on built-in background retry; monitor logs await at most N seconds, then re-check uninitialized servers and alert if still unsynced
Prevention
- Ensure historicals are up before brokers/coordinators finish initialization
- Use resolvable, routable druid.host values
- Open firewall paths for inventory HTTP endpoints
- Increase server inventory HTTP timeouts for large clusters
When it happens
Trigger: serverInventoryInitialized fired while some historicals never returned a successful segment inventory fetch (unreachable, slow, or misconfigured servers).
Common situations: Historicals down or still starting during broker/coordinator startup, network/firewall blocking the inventory HTTP endpoints, wrong druid.host settings, transient network partitions.
Understand the failure class
Background: 'Something went wrong' / 'Request failed (500)' / 'HTTP error! status: 404' — what failed HTTP requests actually mean and how to find the real cause — this error's family across 28 libraries.
Related errors
- Asked to add data segment that already exists!? server
- Asked to remove data segment from a data source that…
- Asked to remove data segment that doesn't exist!? server
- Asked to remove timeline entry
- Could not determine DruidNode for DiscoveryDruidNode
AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07).
Data as JSON: /api/errors/e45b515175b7b5c4.
Report an issue: GitHub.
Appendix: source
Thrown at server/src/main/java/org/apache/druid/client/HttpServerInventoryView.java:406
try {
Thread.sleep(5000);
}
catch (InterruptedException ex) {
throw new RE(ex, "Interrupted while waiting for queryable server initial successful sync.");
}
log.info("Waiting for [%d] servers to sync successfully.", uninitializedServers.size());
uninitializedServers.removeIf(
serverHolder -> serverHolder.isSyncedSuccessfullyAtleastOnce()
|| serverHolder.isStopped()
);
}
if (uninitializedServers.isEmpty()) {
log.info("All servers have been synced successfully at least once.");
} else {
for (DruidServerHolder server : uninitializedServers) {
log.warn(
"Server[%s] might not yet be synced successfully. We will continue to retry that in the background.",
server.druidServer.getName()
);
}
}
log.info("Invoking segment view initialized callbacks.");
runSegmentCallbacks(SegmentCallback::segmentViewInitialized);
}
private void updateFinalPredicate()
{
finalPredicate = Predicates.or(defaultFilter, Predicates.or(segmentPredicates.values()));
}
@VisibleForTesting
void serverAdded(DruidServer server)
{View on GitHub (pinned to 9b90983fd2)