flowable/flowable-engine · error · FlowableException
No deployment id available
Error message
No deployment id available
What it means
Thrown by HistoricTaskInstanceQuery.taskNameLikeIgnoreCase(String) when the argument is null. Despite the generic message ('Task name is null'), this is the null guard for the case-insensitive LIKE pattern parameter. A null pattern cannot be lowercased or converted into a SQL LIKE predicate, so the builder fails fast.
Source
Thrown at modules/flowable-app-engine-rest/src/main/java/org/flowable/app/rest/service/api/repository/AppDefinitionResourceDataResource.java:67
@Autowired(required=false)
protected AppRestApiInterceptor restApiInterceptor;
@ApiOperation(value = "Get an app definition resource content", nickname = "getAppDefinitionContent", tags = { "App Definitions" })
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Indicates both app definition and resource have been found and the resource data has been returned."),
@ApiResponse(code = 404, message = "Indicates the requested app definition was not found or there is no resource with the given id present in the app definition. The status-description contains additional information.")
})
@GetMapping(value = "/app-repository/app-definitions/{appDefinitionId}/resourcedata", produces = "application/json")
@ResponseBody
public byte[] getAppDefinitionResource(@ApiParam(name = "appDefinitionId") @PathVariable String appDefinitionId, HttpServletResponse response) {
AppDefinition appDefinition = appRepositoryService.getAppDefinition(appDefinitionId);
if (appDefinition == null) {
throw new FlowableObjectNotFoundException("Could not find an app definition with id '" + appDefinitionId);
}
if (appDefinition.getDeploymentId() == null) {
throw new FlowableException("No deployment id available");
}
if (appDefinition.getResourceName() == null) {
throw new FlowableException("No resource name available");
}
if (restApiInterceptor != null) {
restApiInterceptor.accessAppDefinitionInfoById(appDefinition);
}
// Check if deployment exists
AppDeployment deployment = appRepositoryService.createDeploymentQuery().deploymentId(appDefinition.getDeploymentId()).singleResult();
if (deployment == null) {
throw new FlowableObjectNotFoundException("Could not find a deployment with id '" + appDefinition.getDeploymentId());
}
List<String> resourceList = appRepositoryService.getDeploymentResourceNames(appDefinition.getDeploymentId());
if (resourceList.contains(appDefinition.getResourceName())) {View on GitHub (pinned to d6d39ce1c6)
Solutions
- Check for null before calling and only apply the filter when a pattern is present.
- Default the pattern to a non-null value (e.g., "" won't help — better to skip the filter) via Optional.ofNullable(pattern).ifPresent(query::taskNameLikeIgnoreCase).
- Fix the upstream source so a defined pattern is always supplied when this filter is intended.
Example fix
// before
query.taskNameLikeIgnoreCase(searchTerm); // may be null
// after
if (searchTerm != null) {
query.taskNameLikeIgnoreCase(searchTerm);
} Defensive patterns
Strategy: validation
Validate before calling
if (pattern == null || pattern.isBlank()) { /* skip filter */ }
else { query.taskNameLikeIgnoreCase(pattern); } Type guard
static boolean hasPattern(String s) { return s != null && !s.isBlank(); } Try / catch
try {
query.taskNameLikeIgnoreCase(pattern);
} catch (FlowableIllegalArgumentException e) {
LOG.warn("Missing task name pattern: {}", e.getMessage());
} Prevention
- Use Optional.ofNullable(pattern).ifPresent(query::taskNameLikeIgnoreCase)
- Treat blank/absent search input as 'no filter', not as a null argument
- Extract request search parameters defensively before query building
When it happens
Trigger: Calling taskNameLikeIgnoreCase(null), typically when a nullable search string from a request or config is passed straight through.
Common situations: Optional search box left empty resolves to null and is forwarded unconditionally; a Map/JSON lookup returns null for a missing 'nameLike' key and is passed directly to the builder.
Related errors
- Error retrieving app engine info
- No resource name available
- variableNames are null or empty
- nameLike is null
- nameLikeIgnoreCase is null
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/c7fa13164841f8dd.
Report an issue: GitHub.