flowable/flowable-engine · error · FlowableException
no org.flowable.app.engine.AppEngine defined in the applicat
Error message
no org.flowable.app.engine.AppEngine defined in the application context <resource>
What it means
FlowableException thrown by SpringAppConfigurationHelper.buildAppEngine when the Spring XML application context loaded from the given URL contains no bean of type org.flowable.app.engine.AppEngine. The helper expects the context file to define an app engine bean (typically via SpringAppEngineConfiguration factory bean).
Source
Thrown at modules/flowable-app-engine-spring/src/main/java/org/flowable/app/spring/SpringAppConfigurationHelper.java:39
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.support.GenericXmlApplicationContext;
import org.springframework.core.io.UrlResource;
/**
* @author Tijs Rademakers
*/
public class SpringAppConfigurationHelper {
private static final Logger LOGGER = LoggerFactory.getLogger(SpringAppConfigurationHelper.class);
public static AppEngine buildAppEngine(URL resource) {
LOGGER.debug("==== BUILDING SPRING APPLICATION CONTEXT AND APP ENGINE =========================================");
try (GenericXmlApplicationContext applicationContext = new GenericXmlApplicationContext(new UrlResource(resource))) {
Map<String, AppEngine> beansOfType = applicationContext.getBeansOfType(AppEngine.class);
if ((beansOfType == null) || beansOfType.isEmpty()) {
throw new FlowableException("no " + AppEngine.class.getName() + " defined in the application context " + resource);
}
AppEngine appEngine = beansOfType.values().iterator().next();
LOGGER.debug("==== SPRING APP ENGINE CREATED ==================================================================");
return appEngine;
}
}
}
View on GitHub (pinned to d6d39ce1c6)
Solutions
- Define a bean of type SpringAppEngineConfiguration (factory bean producing AppEngine) in the XML context
- Verify the URL points to the intended Spring context file
- Check the bean's class attribute matches org.flowable.app.spring.SpringAppEngineConfiguration
Example fix
// before <bean id="processEngineConfiguration" class="org.flowable.engine.impl.cfg.StandaloneProcessEngineConfiguration"/> // after <bean id="appEngineConfiguration" class="org.flowable.app.spring.SpringAppEngineConfiguration"> <property name="dataSource" ref="dataSource"/> <property name="transactionManager" ref="transactionManager"/> </bean>
Defensive patterns
Strategy: validation
Validate before calling
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(new UrlResource(resource));
if (ctx.getBeansOfType(AppEngine.class).isEmpty()) {
throw new IllegalStateException(resource + " defines no AppEngine bean");
} Try / catch
try { AppEngine e = SpringAppConfigurationHelper.buildAppEngine(url); } catch (FlowableException ex) { log.error("Bad spring context: {}", ex.getMessage()); } Prevention
- Keep an AppEngine-typed bean (SpringAppEngineConfiguration) in every engine Spring XML
- Sanity-check context files after copying from other engine configs
- Log the resolved resource URL before building
When it happens
Trigger: Calling AppEngineConfiguration build from a spring XML resource (e.g. flowable.app.cfg.xml style context) whose file defines a different engine type or no engine bean at all.
Common situations: Copying a process-engine Spring config and forgetting to change the bean class to SpringAppEngineConfiguration, wrong resource URL loaded, bean defined with an unexpected type or not exported.
Understand the failure class
Background: "X is required", "must be set", "cannot be empty": the missing-required-config error family, from Vertex AI project/location to WeChat keys — this error's family across 18 libraries.
Related errors
- transactionManager is required property for SpringAppEngineC
- transactionManager is required property for SpringCmmnEngine
- Expected dmnEngine configuration to be of type SpringDmnEngi
- transactionManager is required property for SpringDmnEngineC
- couldn't initialize process engine from spring configuration
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/e9631e078346bae7.
Report an issue: GitHub.