flowable/flowable-engine · error · FlowableIllegalArgumentException
No deployment id provided
Error message
No deployment id provided
What it means
BaseDmnDeploymentResourceDataResource.getDmnDeploymentResourceData throws FlowableIllegalArgumentException("No deployment id provided") when the deploymentId parameter is null. This endpoint fetches a deployment resource by NAME, and both deploymentId and resourceName are mandatory; validation happens before any repository query.
Solutions
- Supply the deployment id in the URL path; obtain it via GET /dmn-repository/deployments if unknown.
- Fix URL building code so null/empty ids are caught before the request is sent.
- Check controller mappings to ensure the deploymentId path variable is correctly bound.
Example fix
// before String url = base + "/dmn-repository/deployments/" + deploymentId + "/resource-data/" + name; // deploymentId null // after Objects.requireNonNull(deploymentId, "deploymentId required"); String url = base + "/dmn-repository/deployments/" + deploymentId + "/resource-data/" + name;
Defensive patterns
Strategy: validation
Validate before calling
if (deploymentId == null || deploymentId.isEmpty()) throw new IllegalArgumentException("deploymentId is required"); Prevention
- Fail fast in client code on null/empty path variables
- Resolve deployment ids from the deployments list endpoint
- Verify controller path-variable bindings when wiring custom endpoints
When it happens
Trigger: GET /dmn-repository/deployments/{deploymentId}/resource-data/{resourceName} with the {deploymentId} path variable null/empty, e.g. an empty interpolated variable in a generated URL or a misbound controller path variable.
Common situations: Template-generated URLs where the deploymentId variable was empty; framework routing that matched a shorter path pattern; client code passing null because a previous lookup failed silently.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- No resource id provided
- No resource name provided
- A group or a user is required to create an identity link.
- A group or a user is required to create an identity link.
- A group or a user is required to create an identity link.
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/83d785692ba36c6d.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/BaseDmnDeploymentResourceDataResource.java:48
/**
* @author Yvo Swillens
*/
public class BaseDmnDeploymentResourceDataResource {
@Autowired
protected ContentTypeResolver contentTypeResolver;
@Autowired
protected DmnRepositoryService dmnRepositoryService;
@Autowired(required=false)
protected DmnRestApiInterceptor restApiInterceptor;
protected byte[] getDmnDeploymentResourceData(String deploymentId, String resourceName, HttpServletResponse response) {
if (deploymentId == null) {
throw new FlowableIllegalArgumentException("No deployment id provided");
}
if (resourceName == null) {
throw new FlowableIllegalArgumentException("No resource name provided");
}
// Check if deployment exists
DmnDeploymentQuery deploymentQuery = dmnRepositoryService.createDeploymentQuery().deploymentId(deploymentId);
DmnDeployment deployment = deploymentQuery.singleResult();
if (deployment == null) {
throw new FlowableObjectNotFoundException("Could not find a DMN deployment with id '" + deploymentId);
}
if (restApiInterceptor != null) {
restApiInterceptor.accessDeploymentById(deployment);
}
List<String> resourceList = dmnRepositoryService.getDeploymentResourceNames(deploymentId);View on GitHub (pinned to d6d39ce1c6)