flowable/flowable-engine · error · org.flowable.common.engine.api.FlowableException
Requested business calendar
Error message
Requested business calendar ${businessCalendarRef} does not exist. Allowed calendars are ${businessCalendars.keySet()}. What it means
Lookup failure in MapBusinessCalendarManager.getBusinessCalendar: a timer referenced a business calendar name (e.g. via the calendarName attribute) that is not among the registered calendars; the allowed names are listed in the message.
Solutions
- Use one of the registered calendar names (the message lists them: cycle, duration, dueDate, default)
- Register a custom BusinessCalendar under the requested name in the engine configuration
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/calendar/MapBusinessCalendarManager.java:43 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/e02db60c9bc4f6c2.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/calendar/MapBusinessCalendarManager.java:43
private final Map<String, BusinessCalendar> businessCalendars;
public MapBusinessCalendarManager() {
this.businessCalendars = new HashMap<>();
}
public MapBusinessCalendarManager(Map<String, BusinessCalendar> businessCalendars) {
if (businessCalendars == null) {
throw new IllegalArgumentException("businessCalendars can not be null");
}
this.businessCalendars = new HashMap<>(businessCalendars);
}
@Override
public BusinessCalendar getBusinessCalendar(String businessCalendarRef) {
BusinessCalendar businessCalendar = businessCalendars.get(businessCalendarRef);
if (businessCalendar == null) {
throw new FlowableException("Requested business calendar " + businessCalendarRef +
" does not exist. Allowed calendars are " + this.businessCalendars.keySet() + ".");
}
return businessCalendar;
}
public BusinessCalendarManager addBusinessCalendar(String businessCalendarRef, BusinessCalendar businessCalendar) {
businessCalendars.put(businessCalendarRef, businessCalendar);
return this;
}
}
View on GitHub (pinned to d6d39ce1c6)