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 exception raised while storing the extra editor source (repositoryService.addModelEditorSourceExtra). The original cause is attached and typically indicates a database or IO problem rather than a client error.

Solutions

  1. Inspect the wrapped cause ('Caused by') in the server log for the real failure
  2. Verify database connectivity and that ACT_RE_MODEL still contains the model id
  3. Check upload size limits (server max-file-size, DB column size) and retry with a smaller payload
  4. Retry the request once the underlying DB/IO issue is fixed
Defensive patterns

Strategy: try-catch

Try / catch

try { setModelSource(...); } catch (FlowableException e) { log.error("storage failed", e.getCause()); /* inspect cause: DB/IO */ }

Prevention

When it happens

Trigger: addModelEditorSourceExtra throws — e.g. database connection failure, model id deleted between the lookup and the write, transaction/rollback issues, or errors reading the uploaded file bytes (file.getBytes()).

Common situations: DB down or locked during deploy scripts; model deleted concurrently; oversized upload exceeding DB column or container limits; disk/memory failures in the servlet container.

Related errors


AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11). Data as JSON: /api/errors/523f365301ee9fe7. Report an issue: GitHub.

Appendix: source

Thrown at modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/ModelSourceExtraResource.java:96

        Model model = getModelFromRequest(modelId);
        try {

            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();

            repositoryService.addModelEditorSourceExtra(model.getId(), file.getBytes());

        } catch (Exception e) {
            throw new FlowableException("Error adding model editor source extra", e);
        }
    }

}

View on GitHub (pinned to d6d39ce1c6)