flowable/flowable-engine · error · FlowableException

Error retrieving idm engine info

Error message

Error retrieving idm engine info

What it means

FlowableException wrapping any unexpected exception raised while collecting IDM engine metadata in the management info endpoint. getEngineInfo queries the IdmEngineInfo (name, version, resource URL, exception) and any internal failure during that collection is re-thrown with this message. It is a wrapper, so the root cause is in the chained exception.

Source

Thrown at modules/flowable-idm-rest/src/main/java/org/flowable/idm/rest/service/api/management/IdmEngineResource.java:65

        if (restApiInterceptor != null) {
            restApiInterceptor.accessIdmManagementInfo();
        }
        
        EngineInfoResponse response = new EngineInfoResponse();

        try {
            IdmEngine idmEngine = IdmEngines.getDefaultIdmEngine();
            EngineInfo idmEngineInfo = IdmEngines.getIdmEngineInfo(idmEngine.getName());

            if (idmEngineInfo != null) {
                response.setName(idmEngineInfo.getName());
                response.setResourceUrl(idmEngineInfo.getResourceUrl());
                response.setException(idmEngineInfo.getException());
            } else {
                response.setName(idmEngine.getName());
            }
        } catch (Exception e) {
            throw new FlowableException("Error retrieving idm engine info", e);
        }

        response.setVersion(IdmEngine.class.getPackage().getImplementationVersion());

        return response;
    }
}

View on GitHub (pinned to d6d39ce1c6)

Solutions

  1. Inspect the chained cause of this FlowableException to identify the root failure and fix that first
  2. Verify the IdmEngine is fully initialized (idm engine configuration and database) before hitting the management endpoint
  3. Confirm flowable-idm-rest and flowable-idm-engine versions match (no mixed jars from different releases)
  4. Check database connectivity used by the identity service

Example fix

// before: ignoring cause
log.error(e.getMessage());
// after
log.error("idm engine info failed", e); // e.getCause() shows the real problem
Defensive patterns

Strategy: try-catch

Try / catch

// JS
try {
  const res = await fetch('/flowable-idm-service/management/engine');
  if (!res.ok) throw new Error('HTTP ' + res.status);
  return await res.json();
} catch (e) {
  log.error('engine info failed', e); // inspect server-side cause
  return null;
}

Prevention

When it happens

Trigger: GET /flowable-idm-service/management/engine (idm engine info endpoint) when the underlying IdmEngine/IdmEngineInfo lookup or response construction throws, e.g. engine not fully initialized or a null/failed engine info resource.

Common situations: IdmEngine bean created before initialization completed; database unreachable when engine info requires a query; misconfigured idm process/engine definitions after upgrade; classpath version mismatch causing reflection/lookup failures inside the info call.

Understand the failure class

Background: "API request failed": what wrapped HTTP errors from external APIs mean and how to find the real cause — this error's family across 29 libraries.

Related errors


AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11). Data as JSON: /api/errors/866ad2ead658b2d2. Report an issue: GitHub.