Jira server throws communication error when filtering or searching issues

Still need help?

The Atlassian Community is here for you.

Ask the community

Symptoms

  • When filtering issues in the issue navigator by a custom field, or loading a filter whose query uses a particular custom field, JIRA returns an error message as follows: "Error Occurred Communicating with the server. Please reload the page and try again."
  • Similar logs as the following appear in the atlassian-jira.log:
2014-03-21 05:42:02,663 http-bio-8180-exec-19 ERROR admin 342x15949x1 15kcaax 203.143.12.26,0:0:0:0:0:0:0:1 /rest/issueNav/1/issueTable [common.error.jersey.ThrowableExceptionMapper] Uncaught exception thrown by REST service
com.atlassian.cache.CacheException: com.atlassian.jira.exception.DataAccessException: Could not find any field config schemes for field config '10800'
...
Caused by: com.atlassian.jira.exception.DataAccessException: Could not find any field config schemes for field config '10800'
	at com.atlassian.jira.issue.fields.config.persistence.FieldConfigSchemePersisterImpl.getConfigSchemeForFieldConfig(FieldConfigSchemePersisterImpl.java:208)

Diagnosis

The problem with the filter or search query only occurs if a particular custom field is used in the search criteria.
You can detect a list of affected field configurations using the SQL:

SELECT fc.id FROM fieldconfiguration fc
LEFT JOIN fieldconfigschemeissuetype fcsit ON (fc.id = fcsit.fieldconfiguration)
WHERE fcsit.id IS null;

In case you get any results from this query, this KB applies to your case.

Cause

Basically, this is a database integrity issue that results from having an invalid entry in the fieldconfiguration table. It's not yet known for sure what is the cause of this, however, it is possible that perhaps there has been some failure when trying to delete a Custom Fields' configuration in the past.

Resolution

Always back up your data before performing any modifications to the database. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.

  1. Using the stack trace identified on your atlassian-jira.log, take note of the faulty ID.
    (info) Using the example from this article, the ID would be '10800', yours will likely be different.

    Could not find any field config schemes for field config '10800'
  2. Run the following SQL statement against the JIRA Database to delete the specific problematic entry from the fieldconfiguration table.
    (plus) Be sure to change 'faultID', to the actual ID from step 1 (which in the case of this example would be '10800').

    DELETE FROM fieldconfiguration WHERE id = 'faultyID';
    

    Or alternatively to run the following delete to remove all orphaned records in fieldconfiguration table:

    DELETE FROM fieldconfiguration WHERE id IN (SELECT fc.id FROM fieldconfiguration fc LEFT JOIN fieldconfigschemeissuetype fcsit ON (fc.id = fcsit.fieldconfiguration) WHERE fcsit.id IS null);

    (warning) For Oracle databases, a COMMIT is required to apply the changes.

  3. Check if the above operation caused any orphaned records in customfieldoption table by running the query below:

    SELECT COUNT (customfieldconfig) FROM customfieldoption WHERE customfieldconfig NOT IN (SELECT id FROM fieldconfiguration);


    1. If the result is zero, proceed to step 4.

    2. If the result is non-zero, then we'll need to also follow the instructions from Error thrown when accessing or creating JIRA Agile board due to Dead References on Cascading Select custom field to fix the data inconsistency.

  4. Restart your JIRA instance, for the changes made to the database to take effect.

Notes

The table structure is as below:

  • fieldconfigschemeissuetype.fieldconfiguration maps to fieldconfiguration.id
  • fieldconfigschemeissuetype.fieldconfigscheme maps to fieldconfigscheme.id

For example:

// Check orphaned records in fieldconfiguration vs fieldconfigschemeissuetype 
select fc.id from fieldconfiguration fc left join fieldconfigschemeissuetype fcsit on (fc.id = fcsit.fieldconfiguration) where fcsit.id is null order by fc.id;
 
// Check orphaned in customfieldoption vs fieldconfiguration 
select distinct(customfieldconfig) from customfieldoption where customfieldconfig not in (select id from fieldconfiguration );



Last modified on Apr 17, 2022

Was this helpful?

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