{"record":{"id":"866ad2ead658b2d2","repo":"flowable/flowable-engine","slug":"error-retrieving-idm-engine-info","errorCode":null,"errorMessage":"Error retrieving idm engine info","messagePattern":"Error retrieving idm engine info","errorType":"http","errorClass":"FlowableException","httpStatus":500,"severity":"error","filePath":"modules/flowable-idm-rest/src/main/java/org/flowable/idm/rest/service/api/management/IdmEngineResource.java","lineNumber":65,"sourceCode":"        if (restApiInterceptor != null) {\n            restApiInterceptor.accessIdmManagementInfo();\n        }\n        \n        EngineInfoResponse response = new EngineInfoResponse();\n\n        try {\n            IdmEngine idmEngine = IdmEngines.getDefaultIdmEngine();\n            EngineInfo idmEngineInfo = IdmEngines.getIdmEngineInfo(idmEngine.getName());\n\n            if (idmEngineInfo != null) {\n                response.setName(idmEngineInfo.getName());\n                response.setResourceUrl(idmEngineInfo.getResourceUrl());\n                response.setException(idmEngineInfo.getException());\n            } else {\n                response.setName(idmEngine.getName());\n            }\n        } catch (Exception e) {\n            throw new FlowableException(\"Error retrieving idm engine info\", e);\n        }\n\n        response.setVersion(IdmEngine.class.getPackage().getImplementationVersion());\n\n        return response;\n    }\n}\n","sourceCodeStart":47,"sourceCodeEnd":73,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-idm-rest/src/main/java/org/flowable/idm/rest/service/api/management/IdmEngineResource.java#L47-L73","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before: ignoring cause\nlog.error(e.getMessage());\n// after\nlog.error(\"idm engine info failed\", e); // e.getCause() shows the real problem","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"// JS\ntry {\n  const res = await fetch('/flowable-idm-service/management/engine');\n  if (!res.ok) throw new Error('HTTP ' + res.status);\n  return await res.json();\n} catch (e) {\n  log.error('engine info failed', e); // inspect server-side cause\n  return null;\n}","preventionTips":["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"],"tags":["rest-api","engine-info","wrapped-exception","flowable"],"backgroundTag":"api-request-failed","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}