{"record":{"id":"6b964b5eeeab0ff9","repo":"flowable/flowable-engine","slug":"andchildren-is-not-valid-boolean-in-mapexcept","errorCode":null,"errorMessage":"'${andChildren}' is not valid boolean in mapException with errorCode=${errorCode} and class=${exceptionClass}","messagePattern":"'(.+?)' is not valid boolean in mapException with errorCode=(.+?) and class=(.+?)","errorType":"exception","errorClass":"XMLException","httpStatus":null,"severity":"error","filePath":"modules/flowable-bpmn-converter/src/main/java/org/flowable/bpmn/converter/child/FlowableMapExceptionParser.java","lineNumber":52,"sourceCode":"\r\n    @Override\r\n    public void parseChildElement(XMLStreamReader xtr, BaseElement parentElement, BpmnModel model) throws Exception {\r\n        if (!(parentElement instanceof Activity)) {\r\n            return;\r\n        }\r\n\r\n        String errorCode = xtr.getAttributeValue(null, MAP_EXCEPTION_ERRORCODE);\r\n        String andChildren = xtr.getAttributeValue(null, MAP_EXCEPTION_ANDCHILDREN);\r\n        String rootCause = xtr.getAttributeValue(null, MAP_EXCEPTION_ROOTCAUSE);\r\n        String exceptionClass = xtr.getElementText();\r\n        boolean hasChildrenBool = false;\r\n\r\n        if (StringUtils.isEmpty(andChildren) || \"false\".equals(andChildren.toLowerCase())) {\r\n            hasChildrenBool = false;\r\n        } else if (\"true\".equals(andChildren.toLowerCase())) {\r\n            hasChildrenBool = true;\r\n        } else {\r\n            throw new XMLException(\"'\" + andChildren + \"' is not valid boolean in mapException with errorCode=\" + errorCode + \" and class=\" + exceptionClass);\r\n        }\r\n\r\n        if (StringUtils.isEmpty(errorCode) || StringUtils.isEmpty(errorCode.trim())) {\r\n            throw new XMLException(\"No errorCode defined mapException with errorCode=\" + errorCode + \" and class=\" + exceptionClass);\r\n        }\r\n\r\n        ((Activity) parentElement).getMapExceptions().add(new MapExceptionEntry(errorCode, exceptionClass, hasChildrenBool, rootCause));\r\n    }\r\n}\r\n","sourceCodeStart":34,"sourceCodeEnd":62,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-bpmn-converter/src/main/java/org/flowable/bpmn/converter/child/FlowableMapExceptionParser.java#L34-L62","documentation":"Flowable's BPMN XML converter parses <mapException> child elements of service-task-like activities. The 'andChildren' attribute must be 'true' or 'false' (or empty, treated as false); any other value makes the converter throw XMLException during model import/parse.","triggerScenarios":"Deploying or parsing a BPMN XML file whose <flowable:mapException> element has an andChildren attribute set to something other than true/false, e.g. andChildren=\"True\" (capitalized), \"yes\", \"1\" or a typo.","commonSituations":"Hand-authored or generated BPMN XML with boolean typos; tools exporting 'yes/no' booleans; after copying mapException definitions between modelers.","solutions":["Set andChildren to exactly \"true\" or \"false\" (lowercase), or remove the attribute entirely (empty defaults to false)","Re-validate/redeploy the BPMN XML after fixing the attribute","If generating XML programmatically, ensure booleans are rendered as lowercase strings"],"exampleFix":"<!-- before -->\n<flowable:mapException errorCode=\"MY_ERR\" exceptionClass=\"java.lang.Exception\" andChildren=\"True\"/>\n<!-- after -->\n<flowable:mapException errorCode=\"MY_ERR\" exceptionClass=\"java.lang.Exception\" andChildren=\"true\"/>","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { bpmnXMLConverter.convertToBpmnModel(xmlInput); } catch (XMLException e) { /* fix andChildren attribute */ }","preventionTips":["Use lowercase true/false for andChildren in mapException elements"],"tags":["bpmn","xml-parsing","validation"],"backgroundTag":"invalid-argument-value","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}