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
- Inspect the chained cause of this FlowableException to identify the root failure and fix that first
- Verify the IdmEngine is fully initialized (idm engine configuration and database) before hitting the management endpoint
- Confirm flowable-idm-rest and flowable-idm-engine versions match (no mixed jars from different releases)
- 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
- Read the server log for the chained root cause, not just the wrapper message
- Verify engine/database initialization before querying management endpoints
- Keep flowable-idm engine and REST module versions in lockstep
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
- ${e.getMessage()}
- Error retrieving process info
- Could not find a case instance with id '${caseInstanceId}'.
- Historic task instance '' variable value for couldn't be fo
- Historic variable instance '' couldn't be found.
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/866ad2ead658b2d2.
Report an issue: GitHub.