Jira server throws Internal Server Error when accessing boards

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. 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

Summary

Symptoms

The following error shows up when accessing a Rapid board :

(Auto-migrated image: description temporarily unavailable)

The following appears in the atlassian-greenhopper.log:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 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.

Solution

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:

        1 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:

        1 2 3 4 -[ 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 :

        (Auto-migrated image: description temporarily unavailable)
    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

      1 2 3 4 5 6 7 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);

      ⚠️ 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)

      1 2 3 4 5 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

    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:

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

    Then, replace it with the correct Step

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

    ℹ️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

      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:

    1 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 Getting Help and an Backing Up Data of your instance.

Updated on April 2, 2025

Still need help?

The Atlassian Community is here for you.