flowable/flowable-engine · error · FlowableIllegalArgumentException
No deployment id provided
Error message
No deployment id provided
What it means
FlowableIllegalArgumentException thrown by getDeploymentResourceData when the deploymentId path/query parameter is null. The REST layer cannot look up a deployment resource without knowing which deployment to query, so it fails fast before hitting the repository service.
Solutions
- Provide a valid deployment id in the request URL path or query parameter.
- Verify the request was actually sent with the id (check the raw URL in client/proxy logs, not just the controller mapping).
- List existing deployments first via GET /event-registry-repository/deployments to obtain a valid id.
Example fix
// before
curl http://host/flowable-rest/event-registry-repository/deployments//resources/model.json
// after
String deploymentId = "d1c33a80-7f2e-11ea-..."; // fetch from deployment list, never empty
curl http://host/flowable-rest/event-registry-repository/deployments/${deploymentId}/resources/model.json Defensive patterns
Strategy: validation
Validate before calling
if (deploymentId == null || deploymentId.isEmpty()) throw new IllegalArgumentException("deploymentId required"); Type guard
boolean hasDeploymentId = s != null && !s.trim().isEmpty();
Try / catch
try { ... } catch (FlowableIllegalArgumentException e) { log.warn("bad request: {}", e.getMessage()); return ResponseEntity.badRequest().build(); } Prevention
- Always build URLs from validated non-empty deployment ids
- Use typed client wrappers that reject empty path segments
When it happens
Trigger: Calling the deployment resource data endpoint (e.g. GET /event-registry-repository/deployments/{deploymentId}/resources/{resourceName}) with a missing or empty deployment id, or invoking getDeploymentResourceData(null, resourceName, response) programmatically.
Common situations: URL templates with an unpopulated path variable, HTTP clients stripping empty path segments, proxy rewrites that drop the id, or copied curl commands with the deployment id placeholder left in place.
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
- Could not find a deployment with id
- 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/d97af7536f7e6709.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/BaseDeploymentResourceDataResource.java:48
/**
* @author Tijs Rademakers
*/
public class BaseDeploymentResourceDataResource {
@Autowired
protected ContentTypeResolver contentTypeResolver;
@Autowired
protected EventRepositoryService repositoryService;
@Autowired(required=false)
protected EventRegistryRestApiInterceptor 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
EventDeployment deployment = repositoryService.createDeploymentQuery().deploymentId(deploymentId).singleResult();
if (deployment == null) {
throw new FlowableObjectNotFoundException("Could not find a deployment with id '" + deploymentId + "'.", EventDeployment.class);
}
if (restApiInterceptor != null) {
restApiInterceptor.accessDeploymentById(deployment);
}
List<String> resourceList = repositoryService.getDeploymentResourceNames(deploymentId);
if (resourceList.contains(resourceName)) {View on GitHub (pinned to d6d39ce1c6)