flowable/flowable-engine · error · FlowableException
Error retrieving process info
Error message
Error retrieving process info
What it means
ProcessEngineResource.getEngineInfo wraps any exception thrown while building the engine info response in a FlowableException with message 'Error retrieving process info'. It signals that querying the process engine's metadata/state (including any stored engine exception info) failed unexpectedly, with the root cause attached as the cause.
Source
Thrown at modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/ProcessEngineResource.java:70
public EngineInfoResponse getEngineInfo() {
if (restApiInterceptor != null) {
restApiInterceptor.accessManagementInfo();
}
EngineInfoResponse response = new EngineInfoResponse();
try {
EngineInfo engineInfo = ProcessEngines.getProcessEngineInfo(engine.getName());
if (engineInfo != null) {
response.setName(engineInfo.getName());
response.setResourceUrl(engineInfo.getResourceUrl());
response.setException(engineInfo.getException());
} else {
// Revert to using process-engine directly
response.setName(engine.getName());
}
} catch (Exception e) {
throw new FlowableException("Error retrieving process info", e);
}
response.setVersion(ProcessEngine.class.getPackage().getImplementationVersion());
return response;
}
}View on GitHub (pinned to d6d39ce1c6)
Solutions
- Inspect the exception's 'cause' in server logs for the root problem
- Verify the process engine is initialized and the database is reachable before calling the endpoint
- Check Flowable datasource configuration (JDBC URL, credentials, driver) and test connectivity
- Restart the application/container to reinitialize the engine if it was closed mid-flight
Example fix
// before (diagnosis) HTTP GET /management/engine -> 500 'Error retrieving process info' // after // check server log for 'Caused by: ...' and fix datasource, e.g.: // spring.datasource.url=jdbc:h2:tcp://localhost/~/flowable;AUTO_SERVER=TRUE
Defensive patterns
Strategy: try-catch
Validate before calling
// verify engine health before calling info endpoint
boolean dbUp = pingDatabase(dataSource); // e.g. run 'SELECT 1'
if (!dbUp) { skipEngineInfoCall(); } Try / catch
try {
EngineInfoResponse info = restTemplate.getForObject(base + "/management/engine", EngineInfoResponse.class);
} catch (HttpServerErrorException e) {
throw new IllegalStateException("Engine info unavailable; check server logs for root cause", e);
} Prevention
- Check the exception 'cause' chain in server logs — this is a wrapper, not the root error
- Validate database connectivity and engine startup logs before calling management endpoints
- Pin consistent Flowable versions so engine introspection APIs match
When it happens
Trigger: GET /management/engine (getEngineInfo) when the underlying ProcessEngine/ManagementService call throws — e.g. engine not properly initialized, database unreachable while resolving engine info, or engineInfo retrieval failing.
Common situations: Flowable engine misconfiguration at startup; database down or connection pool exhausted; accessing the endpoint before/while the engine is being closed; classpath/version problems where engine introspection fails.
Related errors
- Error retrieving idm engine 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.
- Variable operation is missing for variable:
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/274ceccfa95f9adf.
Report an issue: GitHub.