Unable to open BPMN diagram: unparsable content <categoryValue> detected

group test.bpmn (2.3 KB)

When I try to open the attached diagram on demo.bpmn.io I get the following error message:

unparsable content <categoryValue> detected; this may indicate an invalid BPMN 2.0 diagram file
	line: 1
	column: 90
	nested error: unrecognized element <bpmn:categoryValue>

I can reproduce this issue with out latest bpmn-js version. Added an issue in our bug tracker for this:

thanks for the quick reply, any idea when this will be fixed?

It looks like a minor issue. We should be able to provide a fix for the next release.

Correction: The diagram export you provided is not a valid BPMN 2.0 document. For details see here.

Fix your diagram by wrapping the <categoryValue> tag in a <category> tag like this:

   <category id="sid-ccc7e63e-916e-4bd0-a9f0-98cbff749195">
      <categoryValue id="sid-afd7e63e-916e-4bd0-a9f0-98cbff749193" value="group with label"/>
   </category>

Thanks for clarification.

Question: Can we fix this in context of forgiveness? Or wouldn’t that make any sense?

Not that easy, unfortunately. We are going to improve the general error handling in the next release though.

Maybe this will enable us to handle these kinds of export problems in a better way.

The next version of the bpmn toolkit will handle the problem as a warning, allowing you to still import and inspec the diagram.

great, looking forward to it!

I had the same kind of issue. It seems most bpmn tools do not strictly stick to the OMG BPMN2 specification and modify the bpmn2 metamodel and resulting implementation. That’s why we get errors when importing models into bpmn.io.The same thing happens with the bpmn software namespaces in the files. I don’t get why software vendors implement a specification in a way that prevents full interoperability.

We have a similar problem, but it seems that our BPMN is valid. We are trying to integrate BPMN.io into Nuxeo (a DMS/ECM) and use the browserified version of BPMN.io. We’ve installed bpmn-js via npm as documented and used “browserify … --standalone tabjs …” to generate a single js file with all dependencies included. We are not using RequireJS.
The result is, that nothing is rendered. The error log shows a lot of errors like this one here

“could not parse node” - " Error: unrecognized element bpmn2:endEvent {stack: (…), message: “unrecognized element bpmn2:endEvent”}"

The surprising fact is, that the same BPMN file is working when opened with the cloud service BPMN.io. Therefore, it doesn’t seem to be a problem of the BPMN file, but rather a problem of including the JS correctly. The browserified JS is included as a resource in an XHTML template of Nuxeo. The BPMN file is delivered via a REST call to the camunda API. The JS file itself is stored in the Tomcat where camunda is running. The resulting SVG should be inserted into a DIV.

Any suggestions?

@rpe Looks like something went wrong during loading the file from the remote location. Log the file contents that are handed over to BpmnJS#importXML.

Feel free to put up a standalone demo of the bundle somewhere so we can have a look into it.

@nikku: Thanks for the fast response. Unfortunately that’s not the reason for the behavior
We confirmed, that the XML received by the JS function is identical to our file on disk.
A newer version of Chromium delivers some more detailed error messages

Error: unrecognized element <bpmn2:endEvent>
Error: unrecognized element <bpmn2:userTask>
Error: unrecognized element <bpmn2:sequenceFlow>
Error: unrecognized element <bpmn2:serviceTask>
Error: unknown type <"dc:Point" x=">
Error: unknown type <"dc:Point" x="59>

Especially interesting is this error:

[Error:]
Error: Unbound namespace prefix: "dc:Bounds"
Line: 86
Column: 67
Char: >

The namespace prefixes are however declared correctly. Further more we found this:

Warning Stacktrace :
    at BaseHandler.19.ElementHandler.getPropertyForNode (http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:3640:9)
    at BaseHandler.19.ElementHandler.handleChild (http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:3671:23)
    at BaseHandler.19.BaseElementHandler.handleNode (http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:3507:19)
    at Object.handleOpen [as onopentag] (http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:3844:26)
    at emit (http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:5127:33)
    at emitNode (http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:5132:3)
    at openTag (http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:5313:3)
    at Object.write (http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:5719:11)
    at http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:3892:14
    at http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:22919:39

Error Stacktrace:
    at error (http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:5154:8)
    at strictFail (http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:5174:22)
    at openTag (http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:5263:7)
    at Object.write (http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:5693:11)
    at http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:3892:14
    at http://10.90.43.72:8080/bpmn-js/tab_js_browserified.js:22919:39

We are looking into how to make our demo publicly available.

We figured it out. It was not the fault of BPMN.io, but the integration into Nuxeo, that somehow interfered with the JavaScript. We now changed it to become an iFrame and everything is working fine now. Thanks for the advise.

I am glad you could figure it out.