{"record":{"id":"38e04c8e3e8bf5ae","repo":"flowable/flowable-engine","slug":"following-warnings-encountered-during-case-validat","errorCode":null,"errorMessage":"Following warnings encountered during case validation: {}","messagePattern":"Following warnings encountered during case validation: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/parser/CmmnParserImpl.java","lineNumber":113,"sourceCode":"                StringBuilder warningBuilder = new StringBuilder();\n                StringBuilder errorBuilder = new StringBuilder();\n\n                for (ValidationEntry entry : validationEntries) {\n                    if (entry.getLevel() == ValidationEntry.Level.Warning) {\n                        warningBuilder.append(entry).append(\"\\n\");\n                    } else {\n                        errorBuilder.append(entry).append(\"\\n\");\n                    }\n                }\n\n                // Throw exception if there is any error\n                if (errorBuilder.length() > 0) {\n                    throw new FlowableException(\"Errors while parsing:\\n\" + errorBuilder);\n                }\n\n                // Write out warnings (if any)\n                if (warningBuilder.length() > 0) {\n                    logger.warn(\"Following warnings encountered during case validation: {}\", warningBuilder);\n                }\n\n            }\n        }\n    }\n\n    public void processCmmnElements(CmmnModel cmmnModel, CmmnParseResult parseResult) {\n        for (Case caze : cmmnModel.getCases()) {\n            cmmnParseHandlers.parseElement(this, parseResult, caze);\n        }\n    }\n\n    public void processDI(CmmnModel cmmnModel, List<CaseDefinitionEntity> caseDefinitions) {\n\n        if (caseDefinitions.isEmpty()) {\n            return;\n        }\n","sourceCodeStart":95,"sourceCodeEnd":131,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/parser/CmmnParserImpl.java#L95-L131","documentation":"After the CaseValidator runs, validateCmmnModel collects ValidationEntry results; errors cause a FlowableException, but warnings are aggregated and logged with this message. It means the CMMN model passed with no hard errors, yet the validator flagged issues (e.g. questionable references, non-fatal modeling problems) that were attached to the deployment.","triggerScenarios":"Deploying a CMMN case whose validation returns non-empty warning entries — the validator's validate(cmmnModel) returned ValidationEntry objects of warning severity — and no error-severity entries.","commonSituations":"Models exported from external tools with minor deviations from Flowable expectations (e.g. dangling criteria, unusual plan item definitions); warnings after upgrading the validator with new checks; partially broken DI/reference information in the XML.","solutions":["Read the logged warning list and fix each flagged item in the CMMN XML or modeler source","Re-validate locally by running the same CaseValidator against the model in a test before deploying","Treat warnings as review items: they do not block deployment but often indicate the case will misbehave at runtime","Keep modeler and engine versions aligned so validation rules match what the designer emits"],"exampleFix":"// before: deploy despite warnings\nrepositoryService.createDeployment().addClasspathResource(\"case.cmmn\").deploy();\n// after: validate in a test first\nList<ValidationEntry> entries = new CmmnCaseValidatorFactory().createValidator().validate(cmmnModel);\nif (!entries.isEmpty()) { throw new IllegalStateException(\"Fix validation entries before deploy\"); }","handlingStrategy":"validation","validationCode":"List<ValidationEntry> entries = caseValidator.validate(cmmnModel);\nList<ValidationEntry> warnings = entries.stream()\n    .filter(e -> e.getSeverity() == Severity.WARNING).collect(Collectors.toList());\nif (!warnings.isEmpty()) log.warn(\"Fix before deploy: {}\", warnings);","typeGuard":null,"tryCatchPattern":"try {\n    repositoryService.createDeployment().addClasspathResource(\"case.cmmn\").deploy();\n} catch (FlowableException e) {\n    if (e.getMessage().startsWith(\"Errors while parsing\")) {\n        // fix model validation errors reported in the message\n    }\n}","preventionTips":["Run the CaseValidator against models in unit tests before deployment","Review logged warnings on every deploy rather than ignoring them","Keep the validator's rules and the modeling tool version consistent"],"tags":["cmmn","validation","warnings"],"backgroundTag":"schema-validation-failed","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-18T11:17:12.947Z"}