flowable/flowable-engine · error · FlowableObjectNotFoundException

no resource found with name '' in deployment ''

Error message

no resource found with name '' in deployment ''

What it means

When the resource lookup by deploymentId+resourceName finds nothing but the deployment itself exists, the command throws FlowableObjectNotFoundException stating no resource with that name exists in the deployment. The deployment is valid, only the resource name does not match.

Solutions

  1. Call cmmnRepositoryService.getDeploymentResourceNames(deploymentId) and use an exact returned name
  2. Check spelling/extension/case of resourceName against what was deployed
  3. Redeploy with the resource included

Example fix

// before
InputStream is = cmmnRepositoryService.getResource(deploymentId, "myCase.cmmn"); // typo
// after
List<String> names = cmmnRepositoryService.getDeploymentResourceNames(deploymentId);
if (names.contains("my-case.cmmn")) {
    InputStream is = cmmnRepositoryService.getResource(deploymentId, "my-case.cmmn");
}
Defensive patterns

Strategy: fallback

Validate before calling

List<String> names = cmmnRepositoryService.getDeploymentResourceNames(deploymentId);
boolean present = names != null && names.contains(resourceName);

Try / catch

try { return cmmnRepositoryService.getResource(deploymentId, name); } catch (FlowableObjectNotFoundException e) { return fallbackResource(name); }

Prevention

When it happens

Trigger: Calling CmmnRepositoryService.getResource(deploymentId, resourceName) where the deployment exists but no resource row matches that exact resource name (typo, wrong extension, resource removed, or name case mismatch).

Common situations: Guessing the resource name instead of listing it; deployment packaged without the .cmmn/.png file; using the model key instead of the file name; database migration dropping resource rows.

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


AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11). Data as JSON: /api/errors/67e2b51ab09207d0. Report an issue: GitHub.

Appendix: source

Thrown at modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/cmd/GetDeploymentResourceCmd.java:54

        this.resourceName = resourceName;
    }

    @Override
    public InputStream execute(CommandContext commandContext) {
        if (deploymentId == null) {
            throw new FlowableIllegalArgumentException("deploymentId is null");
        }
        if (resourceName == null) {
            throw new FlowableIllegalArgumentException("resourceName is null");
        }

        CmmnResourceEntity resource = CommandContextUtil.getCmmnResourceEntityManager(commandContext)
                .findResourceByDeploymentIdAndResourceName(deploymentId, resourceName);
        if (resource == null) {
            if (CommandContextUtil.getCmmnDeploymentEntityManager(commandContext).findById(deploymentId) == null) {
                throw new FlowableObjectNotFoundException("deployment does not exist: " + deploymentId, CmmnDeploymentEntity.class);
            } else {
                throw new FlowableObjectNotFoundException("no resource found with name '" + resourceName + "' in deployment '" + deploymentId + "'", CmmnResourceEntity.class);
            }
        }
        return new ByteArrayInputStream(resource.getBytes());
    }

}

View on GitHub (pinned to d6d39ce1c6)