Uploaded image for project: 'Jira Software Cloud'
  1. Jira Software Cloud
  2. JSWCLOUD-18619

next-gen Board is unable to load due to corrupted workflow descriptor

    XMLWordPrintable

Details

    Description

      Issue Summary

      next-gen Board unable to load, due to corrupted workflow

      An invalid XML character (Unicode: 0x8) was found in the value of attribute “name” and element is “action”. (line:147 col:27)
      

      The above causes two Problems

      #Problem 1 - The Board is unable to load
      #Problem 2 - The issues within the Project returns 500 Internal Server Error

      Steps to Reproduce

      1. Go to a next-gen project's board
      2. Add a column that has an escaped character in there written in plain text. E.g. "\btest" where \b represents the backspace key.
      3. Create the column and delete the column
      4. Repeat steps 2-3 until an error occurs. (sometimes ones will do)
      5. We now have a corrupted workflow and our board is broken (refresh the page)

      Expected Results

      No error, non-corrupted board, backslash should be removed or escaped

      Actual Results

      corrupted board and corrupted workflow

      Note

      Via REST to the Board, you can see the error caused by the \b which is a unicode character (Unicode: 0x8)

      • https://<instance>.atlassian.net/rest/agile/1.0/board/<board-id>/configuration
      {"id":23,"name":"TB2 board","type":"simple","self":"https://<instance>.atlassian.net/rest/agile/1.0/board/23/configuration","location":{"type":"project","key":"TB2","id":"10026","self":"https://<instance>.atlassian.net/rest/api/2/project/10026","name":"Test Board 2"},"filter":{"id":"10029","self":"https://<instance>.atlassian.net/rest/api/2/filter/10029"},"columnConfig":{"columns":[{"name":"To Do","statuses":[{"id":"10088","self":"https://<instance>.atlassian.net/rest/api/2/status/10088"}]},{"name":"In Progress","statuses":[{"id":"10089","self":"https://<instance>.atlassian.net/rest/api/2/status/10089"}]},{"name":"Done","statuses":[{"id":"10090","self":"https://<instance>.atlassian.net/rest/api/2/status/10090"}]},{"name":"\bREVIEW","statuses":[{"id":"10091","self":"https://<instance>.atlassian.net/rest/api/2/status/10091"}]}],"constraintType":"none"},"ranking":{"rankCustomFieldId":10011}}
      

      #Problem 1

      Caused by: java.lang.NullPointerException
      	at com.atlassian.jira.bc.config.DefaultConstantsService$IsStatusVisible.findMoreStatuses(DefaultConstantsService.java:217)
      	at com.atlassian.jira.bc.config.DefaultConstantsService$IsStatusVisible.apply(DefaultConstantsService.java:205)
      	at com.atlassian.jira.bc.config.DefaultConstantsService.isStatusVisible(DefaultConstantsService.java:110)
      	at com.atlassian.jira.bc.config.DefaultConstantsService.getStatusById(DefaultConstantsService.java:73)
      	at com.atlassian.jira.rest.v2.issue.StatusResource.getStatus(StatusResource.java:123)
      	... 397 more
      

      Error returned as a result of Duplication

      error: {"graphQLErrors":[{"message":"Cannot return null for non-nullable type: 'Boolean' within parent 'Column' (/boardScope/board/columns[1]/isDone)","path":["boardScope","board","columns",1,"isDone"],"extensions":{"applicationError":null,"statusCode":null}},{"message":"Cannot return null for non-nullable type: 'Boolean' within parent 'Column' (/boardScope/board/columns[1]/isInitial)","path":["boardScope","board","columns",1,"isInitial"],"extensions":{"applicationError":null,"statusCode":null}}],"networkError":null,"message":"GraphQL error: Cannot return null for non-nullable type: 'Boolean' within parent 'Column' (/boardScope/board/columns[1]/isDone)\nGraphQL error: Cannot return null for non-nullable type: 'Boolean' within parent 'Column' (/boardScope/board/columns[1]/isInitial)","name":"SwagError"}
      

      The below exception is thrown in the Stack trace - Caused by :

      #Problem 2:

      Caused by: com.opensymphony.workflow.FactoryException: Error converting XML to workflow descriptor.
      	at com.atlassian.jira.workflow.WorkflowUtil.createWorkflowDescriptor(WorkflowUtil.java:280)
      	at com.atlassian.jira.workflow.WorkflowUtil.convertXMLtoWorkflowDescriptor(WorkflowUtil.java:236)
      	... 442 more
      Caused by: org.xml.sax.SAXException: An invalid XML character (Unicode: 0x8) was found in the value of attribute "name" and element is "action". (line:75 col:27)
      	at com.opensymphony.workflow.loader.WorkflowLoader$WorkflowErrorHandler.fatalError(WorkflowLoader.java:129)
      	at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
      	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
      	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
      	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
      	at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
      	at org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source)
      	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanAttribute(Unknown Source)
      	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
      	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
      	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
      	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
      	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
      	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
      	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
      	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
      	at com.atlassian.jira.workflow.WorkflowUtil.createWorkflowDescriptor(WorkflowUtil.java:276)
      	... 443 more
      

      Workaround

      Contact Support for a fix

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              hnyeche Prince N
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: