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

  1. Finish the rolling upgrade so all coordinators run 0.17.0+
  2. Verify the request is hitting a coordinator process of the correct version (check druid.coordinator config and service discovery)
  3. If upgrades are intentionally mixed, this warning is expected and safe to ignore temporarily
  4. 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

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


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)