apache/druid · info
cachedSerializedGroupMappingMap is not available from the…
Error message
cachedSerializedGroupMappingMap is not available from the coordinator, skipping fetch of group mappings for now.
What it means
CoordinatorPollingBasicAuthorizerCacheManager.tryFetchGroupMappingMapsFromCoordinator() polls the coordinator's group-mapping cache endpoint. A 404 means the endpoint (introduced in Druid 0.17.0) does not exist on the coordinator, so the fetch is skipped with this warning and null is returned. This is a deliberate backwards-compatibility path for rolling upgrades from pre-0.17.0 coordinators.
Solutions
- Finish the rolling upgrade so all coordinators run 0.17.0+
- Verify the request is hitting a coordinator process of the correct version (check druid.coordinator config and service discovery)
- If upgrades are intentionally mixed, this warning is expected and safe to ignore temporarily
- Ensure the basic-security extension version is consistent across the cluster
Defensive patterns
Strategy: fallback
Validate before calling
// check coordinator version capability before fetching // GET /status on the coordinator and verify version >= 0.17.0
Try / catch
if (response.getStatus() == 404) {
// expected during rolling upgrade; fall back to local cached group mappings
return previousCachedMap;
} Prevention
- Complete rolling upgrades promptly so all coordinators are 0.17.0+
- Pin basic-security extension versions consistently cluster-wide
- Route group-mapping fetches to the current coordinator leader
- Treat this warning as benign during mixed-version windows
When it happens
Trigger: Hitting GET coordinator/groupMappings cached endpoint on a coordinator older than 0.17.0, which lacks the endpoint and returns HTTP 404.
Common situations: Rolling upgrade: 0.17.0+ services running against an older coordinator; misrouted request to a non-coordinator service; stale reverse-proxy or load balancer pointing at an old coordinator.
Related errors
- Different restrictions on table
- Failed to deserialize authorizer role, ignoring
- Got an unexpected response status
- Skipping deep storage directory kill: relative path must…
- Task type [ ], does not support input source based security
AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07).
Data as JSON: /api/errors/19bdc8ff670ce375.
Report an issue: GitHub.
Appendix: source
Thrown at extensions-core/druid-basic-security/src/main/java/org/apache/druid/security/basic/authorization/db/cache/CoordinatorPollingBasicAuthorizerCacheManager.java:439
String prefix
) throws Exception
{
RequestBuilder req = new RequestBuilder(
HttpMethod.GET,
StringUtils.format("/druid-ext/basic-security/authorization/db/%s/cachedSerializedGroupMappingMap", prefix)
);
BytesFullResponseHolder responseHolder = coordinatorClient.request(
req,
new BytesFullResponseHandler()
);
final HttpResponseStatus status = responseHolder.getStatus();
// cachedSerializedGroupMappingMap is a new endpoint introduced in Druid 0.17.0. For backwards compatibility, if we
// get a 404 from the coordinator we stop retrying. This can happen during a rolling upgrade when a process
// running 0.17.0+ tries to access this endpoint on an older coordinator.
if (HttpResponseStatus.NOT_FOUND.equals(status)) {
LOG.warn("cachedSerializedGroupMappingMap is not available from the coordinator, skipping fetch of group mappings for now.");
return null;
}
if (!HttpResponseStatus.OK.equals(status)) {
LOG.warn("Got an unexpected response status[%s] when loading group mappings.", status);
}
byte[] groupRoleMapBytes = responseHolder.getContent();
GroupMappingAndRoleMap groupMappingAndRoleMap = objectMapper.readValue(
groupRoleMapBytes,
BasicAuthUtils.AUTHORIZER_GROUP_MAPPING_AND_ROLE_MAP_TYPE_REFERENCE
);
if (groupMappingAndRoleMap != null && commonCacheConfig.getCacheDirectory() != null) {
writeGroupMappingMapToDisk(prefix, groupRoleMapBytes);
}
return groupMappingAndRoleMap;
}View on GitHub (pinned to 9b90983fd2)