flowable/flowable-engine · error · FlowableIllegalArgumentException
Invalid app definition id : null
Error message
Invalid app definition id : null
What it means
Null-argument guard in AppDeploymentManager.findDeployedAppDefinitionById: the cache/DB lookup for a deployed app definition was requested with a null id, which is treated as an invalid identifier rather than a miss.
Solutions
- Pass a non-null app definition id
- Guard callers such as getAppDefinition/getAppModel so they never forward a null id
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at modules/flowable-app-engine/src/main/java/org/flowable/app/engine/impl/deployer/AppDeploymentManager.java:59 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/58ca643b7a3af082.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-app-engine/src/main/java/org/flowable/app/engine/impl/deployer/AppDeploymentManager.java:59
protected DeploymentCache<AppDefinitionCacheEntry> appDefinitionCache;
protected List<EngineDeployer> deployers;
protected AppEngineConfiguration appEngineConfiguration;
protected AppDeploymentEntityManager deploymentEntityManager;
protected AppDefinitionEntityManager appDefinitionEntityManager;
public void deploy(EngineDeployment deployment) {
deploy(deployment, null);
}
public void deploy(EngineDeployment deployment, Map<String, Object> deploymentSettings) {
for (EngineDeployer deployer : deployers) {
deployer.deploy(deployment, deploymentSettings);
}
}
public AppDefinition findDeployedAppDefinitionById(String appDefinitionId) {
if (appDefinitionId == null) {
throw new FlowableIllegalArgumentException("Invalid app definition id : null");
}
AppDefinitionCacheEntry cacheEntry = appDefinitionCache.get(appDefinitionId);
AppDefinition appDefinition = cacheEntry != null ? cacheEntry.getAppDefinition() : null;
if (appDefinition == null) {
appDefinition = appDefinitionEntityManager.findById(appDefinitionId);
if (appDefinition == null) {
throw new FlowableObjectNotFoundException("no deployed app definition found with id '" + appDefinitionId + "'", AppDefinition.class);
}
appDefinition = resolveAppDefinition(appDefinition).getAppDefinition();
}
return appDefinition;
}
public AppDefinition findDeployedLatestAppDefinitionByKey(String appDefinitionKey) {
AppDefinition appDefinition = appDefinitionEntityManager.findLatestAppDefinitionByKey(appDefinitionKey);
View on GitHub (pinned to d6d39ce1c6)