flowable/flowable-engine · error · FlowableIllegalArgumentException
No deployment id provided
Error message
No deployment id provided
What it means
BaseDeploymentResourceDataResource.getDeploymentResourceData first validates that a deploymentId was supplied before looking up the deployment resource content. A null deploymentId yields FlowableIllegalArgumentException. In the REST layer this surfaces as HTTP 400 because the path variable resolved to nothing usable.
Solutions
- Ensure the URL includes a valid deployment id: GET /repository/deployments/{deploymentId}/resourcedata/{resourceName}.
- Validate deploymentId is non-null/non-empty in the client before calling.
- Fix URL-templating code that leaves the placeholder unsubstituted.
Example fix
// before
client.get("/repository/deployments//resourcedata/process.bpmn");
// after
client.get("/repository/deployments/2501/resourcedata/process.bpmn"); Defensive patterns
Strategy: validation
Validate before calling
if (!deploymentId) throw new Error('deploymentId is required'); Try / catch
try { ... } catch (e) { if (e.status === 400) log.error('Missing deployment id in request'); throw e; } Prevention
- Validate path parameters before building REST URLs.
- Check URL templates are fully interpolated (no empty segments).
- Guard direct calls to getDeploymentResourceData with a null check.
When it happens
Trigger: Requesting deployment resource data with a null/empty deploymentId (e.g. malformed URL path where {deploymentId} is empty or a misconfigured client sends no id).
Common situations: Template variable not substituted in generated URLs; client framework strips empty path segments; calling the protected helper method directly from custom code with a null argument.
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 deployment id provided
- No resource name provided
- Could not find a deployment with id
- Could not find a deployment with id
- Could not find a deployment with id
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/067fb8e09adddadb.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/BaseDeploymentResourceDataResource.java:48
/**
* @author Frederik Heremans
*/
public class BaseDeploymentResourceDataResource {
@Autowired
protected ContentTypeResolver contentTypeResolver;
@Autowired
protected RepositoryService repositoryService;
@Autowired(required=false)
protected BpmnRestApiInterceptor restApiInterceptor;
protected byte[] getDeploymentResourceData(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
Deployment deployment = repositoryService.createDeploymentQuery().deploymentId(deploymentId).singleResult();
if (deployment == null) {
throw new FlowableObjectNotFoundException("Could not find a deployment with id '" + deploymentId + "'.", Deployment.class);
}
if (restApiInterceptor != null) {
restApiInterceptor.accessDeploymentById(deployment);
}
List<String> resourceList = repositoryService.getDeploymentResourceNames(deploymentId);
if (resourceList.contains(resourceName)) {View on GitHub (pinned to d6d39ce1c6)