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

  1. Check the 'Caused by' chain in the server log for the root cause
  2. Verify DB health and that the model still exists (GET /repository/models/{modelId})
  3. Reduce payload size or raise max-file-size/column limits as appropriate
  4. 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

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


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)