flowable/flowable-engine · error · FlowableObjectNotFoundException
Could not find a resource with name '<resourceName>' in depl
Error message
Could not find a resource with name '<resourceName>' in deployment '<deploymentId>
What it means
FlowableObjectNotFoundException thrown when the requested resourceName is not present in the deployment's resource list. The deployment exists but contains no resource with that exact (case-sensitive) name.
Source
Thrown at modules/flowable-app-engine-rest/src/main/java/org/flowable/app/rest/service/api/repository/AppDeploymentResourceDataResource.java:94
if (restApiInterceptor != null) {
restApiInterceptor.accessDeploymentById(deployment);
}
List<String> resourceList = appRepositoryService.getDeploymentResourceNames(deploymentId);
if (resourceList.contains(resourceName)) {
response.setContentType("application/json");
try (final InputStream resourceStream = appRepositoryService.getResourceAsStream(deploymentId, resourceName)) {
return IOUtils.toByteArray(resourceStream);
} catch (Exception e) {
throw new FlowableException("Error converting resource stream", e);
}
} else {
// Resource not found in deployment
throw new FlowableObjectNotFoundException("Could not find a resource with name '" + resourceName + "' in deployment '" + deploymentId);
}
}
}
View on GitHub (pinned to d6d39ce1c6)
Solutions
- First call GET .../app-deployments/{deploymentId}/resources to list valid resource names
- Copy the exact resource name from that listing
- Check URL encoding if the name contains slashes or spaces
Example fix
// before GET /app-repository/app-deployments/123/resources/App.json // after (per resource listing) GET /app-repository/app-deployments/123/resources/app.json
Defensive patterns
Strategy: validation
Validate before calling
List<String> names = appRepositoryService.getDeploymentResourceNames(deploymentId);
if (!names.contains(resourceName)) { throw new IllegalArgumentException(resourceName + " not in deployment " + deploymentId); } Try / catch
try { ... } catch (FlowableObjectNotFoundException e) { return ResponseEntity.status(404).body("Unknown resource name"); } Prevention
- Fetch the deployment's resource list before requesting a resource
- Remember resource names are case-sensitive
- URL-encode resource names containing special characters
When it happens
Trigger: GET /app-repository/app-deployments/{deploymentId}/resources/{resourceName} where resourceName is misspelled or was never part of the deployment.
Common situations: Case-sensitive mismatch (App.json vs app.json), requesting a resource from the wrong deployment, path-encoding issues mangling slashes or special characters in the name.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- Could not find a resource with id '<resourceName>' in deploy
- Could not find an app deployment with id '<deploymentId>
- Could not find an app deployment with id '<deploymentId>
- Could not find a deployment with id '<deploymentId>'.
- Could not find a resource with id '<resourceName>' in deploy
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/a6342ad724960bad.
Report an issue: GitHub.