Jira server throws Internal Server Error when accessing boards

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Symptoms

The following error shows up when accessing a Rapid board : 


The following appears in the atlassian-greenhopper.log:

2015-01-26 10:23:46,461 http-bio-6312-exec-6 ERROR abcd 623x689x1 viw50s 0:0:0:0:0:0:0:1 /rest/greenhopper/1.0/rapidviewconfig/editmodel.json [common.error.jersey.ThrowableExceptionMapper] Uncaught exception thrown by REST service: null
java.lang.NullPointerException
	at com.atlassian.greenhopper.web.rapid.view.ColumnEditRequest$StatusDetails.from(ColumnEditRequest.java:148)
	at com.atlassian.greenhopper.web.rapid.view.ColumnEditHelper.asStatusEntry(ColumnEditHelper.java:331)
	at com.atlassian.greenhopper.web.rapid.view.ColumnEditHelper.buildColumnStatusesModel(ColumnEditHelper.java:314)
	at com.atlassian.greenhopper.web.rapid.view.ColumnEditHelper.buildColumnEditModel(ColumnEditHelper.java:186)
	at com.atlassian.greenhopper.web.rapid.view.RapidViewEditHelper.getEditModel(RapidViewEditHelper.java:147)
	at com.atlassian.greenhopper.web.rapid.view.RapidViewEditResource$8.call(RapidViewEditResource.java:219)
	at com.atlassian.greenhopper.web.rapid.view.RapidViewEditResource$8.call(RapidViewEditResource.java:212)
	at com.atlassian.greenhopper.web.util.RestCall.response(RestCall.java:42)
	at com.atlassian.greenhopper.web.AbstractResource.createResponse(AbstractResource.java:100)
	at com.atlassian.greenhopper.web.AbstractResource.response(AbstractResource.java:81)
	at com.atlassian.greenhopper.web.rapid.view.RapidViewEditResource.getEditModel(RapidViewEditResource.java:211)  <+3> (NativeMethodAccessorImpl.java:57) (DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)  <+19> (DispatchProviderHelper.java:234) (DispatchProviderHelper.java:100) (DefaultMethodInvocation.java:61) (ExpandInterceptor.java:38) (DefaultMethodInvocation.java:61) (DispatchProviderHelper.java:132) (DispatchProviderHelper.java:230) (ResourceJavaMethodDispatcher.java:75) (HttpMethodRule.java:288) (RightHandPathRule.java:147) (ResourceClassRule.java:108) (RightHandPathRule.java:147) (RootResourceClassesRule.java:84) (WebApplicationImpl.java:1469) (WebApplicationImpl.java:1400) (WebApplicationImpl.java:1349) (WebApplicationImpl.java:1339) (WebComponent.java:416) (ServletContainer.java:537)

Diagnosis

  • Integrity checker does not return any errors or the issue persists after fixing all errors pointed by Integrity checker.

Cause

There are some workflows containing steps that do not have a linked status.

Workaround

Deleting the workflow and replacing it with another will effectively work around the issue. This does mean the workflow is permanently gone. To attempt to address the problem please refer to the resolution below.

Resolution

  1. Identify problematic workflows. One hint is to examine the most recently imported or modified workflows just before the issue began to happen from the JIRA Workflows list page. Other approaches include:
    1. Check the workflows for the affected board's projects:
      1. Check the filter query for the Rapid Board as per Configuring Filters. If you're unable to access the Board, the below SQL can be used to identify the JQL for the Board:

        SELECT rv."NAME", sr.filtername, sr.reqcontent AS jql FROM "AO_60DB71_RAPIDVIEW" rv JOIN searchrequest sr ON rv."SAVED_FILTER_ID" = sr.id;

        This will produce results such as the below:

        -[ RECORD 1 ]-------------------------------
        NAME       | Sample Scrum Project
        filtername | Filter for Sample Scrum Project
        jql        | project = SSP ORDER BY Rank ASC
      2. Note all of the project(s) that the Rapid board is pointing to. 
      3. Check the workflow for the project(s). 
      4. One of the workflow step would be showing up like this :
    2. Alternatively, the following query may help to identify problematic workflows. The result is the status id that is not correctly mapped in your Workflow. Note that may be best tested in a staging environment where you have CREATE TABLE permission, specifically for the Oracle variation. 

      PostgreSQL
      SELECT wfname AS workflow_name, final.st as invalid_status_id FROM (
      	SELECT substring(CAST(matches AS varchar) FROM '[0-9]+') AS st, Wstatus.workflowname as wfname
          FROM (
          	SELECT distinct(regexp_matches(descriptor, 'jira.status.id\">[0-9]+<', 'g')) AS matches, workflowname
              FROM jiraworkflows
          ) AS Wstatus 
      ) AS final WHERE final.st NOT IN (SELECT id FROM issuestatus);

      (warning) Oracle SQL query below will only use regexp_substr which will only select a single output. Please see alternative c.

      Oracle query
      Oracle (specifically tested on 12C)
      CREATE GLOBAL TEMPORARY TABLE testtable
         ON COMMIT PRESERVE ROWS 
         AS  SELECT regexp_substr(descriptor, 'jira.status.id\">[0-9]+<') as test FROM jiraworkflows;
         
      select DISTINCT to_char(regexp_substr(test, '[0-9]+')) as UnMappedStatus FROM testtable where to_char(regexp_substr(test, '[0-9]+')) not in (select id from issuestatus);
    3. Another alternative is to export the output of the jiraworkflows and issuestatus table and perform necessary text manipulation in identifying the Status from jiraworkflows table that is missing from issuestatus table.
  2. Restore the Linked Status by editing the workflow
    Click Edit button under that Step Operations to re-link the Linked Status

    tip/resting Created with Sketch.

    This can only be done when the workflow is not active. To workaround this, create a copy of the active workflow and edit the Linked Status there.

If it's not possible to re-link the Linked Status:

  1. View the broken workflow, and generate an XML export of that workflow
  2. Open the XML file in a text editor, and search for any broken section like:

    <step id="6" name="In Progress">
    <meta name="jira.status.id">
    {STATUS_In Progress}</meta>
    </step>

    Then, replace it with the correct Step

    <step id="6" name="In Progress">
    <meta name="jira.status.id">3</meta>
    </step>

    (info) Replace the {STATUS_In Progress} with the correct ID of the missing Status. In this case, In Progress' ID is 3

  3. Save the changes, and upload the edited XML file as a new workflow from your Administration > Issues > Workflows page, by clicking the (+) Add Workflow button
  4. Since this is a workflow from an Agile project, go to the Workflow Scheme page, and click the Edit button for the affected project
  5. Click the Add Workflow > Add Existing button, and choose the fixed Workflow
  6. Click Next and associate it to All Unassigned Issue Types only
  7. Publish the changes, and associate any issue(s) when needed
  8. Verify whether the fixed workflow solve the issue

If you are facing problem even after re-link the Linked Status, this will normally when you try to associate the new copy of workflow with the project and mapping the statuses. In this case, you will need to take the XML from the fixed workflow and update the problematic workflow in database:

  1. Create a copy of the problematic workflow.
  2. Perform the fix as mentioned above:

    1. Restore the Linked Status by editing the workflow
      Click Edit button under that Step Operations to re-link the Linked Status

      tip/resting Created with Sketch.

      This can only be done when the workflow is not active. To workaround this, create a copy of the active workflow and edit the Linked Status there.

  3. Stop JIRA service.
  4. Backup your JIRA DB.
  5. Login to your JIRA DB and execute the following command:

    update jiraworkflows set descriptor=(select descriptor from jiraworkflows where workflowname='<name_of_the_copy_workflow>') where workflowname='<name_of_the_original_workflow>';

    Note: Replace <name_of_the _copy_workflow> and <name_of_the_original_workflow> with the actual name of the copy workflow and original workflow respectively.

  6. Start JIRA service.
  7. Verify if the initial problem persists.

If any of the above steps did not help, please raise an issue with Atlassian Support with a Support zip and an XML backup of your instance.



Last modified on May 23, 2023

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.