flowable/flowable-engine · error · FlowableException
Error adding model editor source extra
Error message
Error adding model editor source extra
What it means
Generic FlowableException wrapping any failure while persisting the model editor source via repositoryService.addModelEditorSource. Despite the message saying 'extra', this endpoint stores the plain source; the cause carries the real error.
Solutions
- Check the 'Caused by' chain in the server log for the root cause
- Verify DB health and that the model still exists (GET /repository/models/{modelId})
- Reduce payload size or raise max-file-size/column limits as appropriate
- Retry after resolving the underlying database/IO issue
Defensive patterns
Strategy: try-catch
Try / catch
try { setModelSource(...); } catch (FlowableException e) { log.error("addModelEditorSource failed", e.getCause()); /* retry after DB recovery */ } Prevention
- Check the wrapped cause for the real error
- Ensure the model exists before writing source
- Watch for size limits on uploads
- Add retry logic for transient DB errors
When it happens
Trigger: addModelEditorSource throws — database connectivity/transaction failures, the model being deleted concurrently, failures reading the uploaded bytes, or storage size limits exceeded.
Common situations: DB outage during CI deploys; very large source files exceeding column or servlet limits; concurrent model deletion in race conditions.
Related errors
- Error adding model editor source extra
- A group or a user is required to create an identity link.
- A group or a user is required to create an identity link.
- Authentication failed for this username and password
- Comment text is required.
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/030b6ed001d99817.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/ModelSourceResource.java:96
@ResponseStatus(HttpStatus.NO_CONTENT)
public void setModelSource(@ApiParam(name = "modelId") @PathVariable String modelId, HttpServletRequest request) {
Model model = getModelFromRequest(modelId);
if (!(request instanceof MultipartHttpServletRequest)) {
throw new FlowableIllegalArgumentException("Multipart request is required");
}
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
if (multipartRequest.getFileMap().size() == 0) {
throw new FlowableIllegalArgumentException("Multipart request with file content is required");
}
MultipartFile file = multipartRequest.getFileMap().values().iterator().next();
try {
repositoryService.addModelEditorSource(model.getId(), file.getBytes());
} catch (Exception e) {
throw new FlowableException("Error adding model editor source extra", e);
}
}
}
View on GitHub (pinned to d6d39ce1c6)