500 CacheException error thrown during upgrade/restore of Jira server

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

Problem

500 error is shown with a stack trace referencing cache issues with errors similar to the following appearing in the atlassian-jira.log

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Exception thrown during upgrade: java.lang.NullPointerException com.atlassian.cache.CacheException: java.lang.NullPointerException at com.atlassian.cache.memory.DelegatingCachedReference.get(DelegatingCachedReference.java:62) at com.atlassian.jira.project.CachingProjectManager.getProjectObj(CachingProjectManager.java:78) at com.atlassian.jira.issue.IssueImpl.getProjectObject(IssueImpl.java:332) at com.atlassian.jira.issue.IssueImpl.initializeKey(IssueImpl.java:1177) at com.atlassian.jira.issue.IssueImpl.(IssueImpl.java:175) at com.atlassian.jira.issue.DefaultIssueFactory.getIssue(DefaultIssueFactory.java:65) at com.atlassian.jira.issue.util.IssueGVsIssueIterable$1.transform(IssueGVsIssueIterable.java:31) at com.atlassian.jira.issue.util.IssueGVsIssueIterable$1.transform(IssueGVsIssueIterable.java:28) at com.atlassian.jira.issue.util.AbstractTransformIssueIterator.nextIssue(AbstractTransformIssueIterator.java:16) at com.atlassian.jira.issue.util.AbstractTransformIssueIterator.next(AbstractTransformIssueIterator.java:20) at com.atlassian.jira.issue.util.AbstractTransformIssueIterator.next(AbstractTransformIssueIterator.java:8) at com.atlassian.jira.util.collect.CollectionUtil.foreach(CollectionUtil.java:39) at com.atlassian.jira.issue.util.IssueGVsIssueIterable.foreach(IssueGVsIssueIterable.java:28) at com.atlassian.jira.issue.index.DefaultIssueIndexer.perform(DefaultIssueIndexer.java:282) at com.atlassian.jira.issue.index.DefaultIssueIndexer.reindexIssues(DefaultIssueIndexer.java:162) at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:541) at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:517) at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:500) at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:391) at com.atlassian.jira.issue.index.DefaultIndexManager.reIndex(DefaultIndexManager.java:466) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NullPointerException at com.atlassian.jira.util.Named$1.compare(Named.java:14) at com.atlassian.jira.util.Named$1.compare(Named.java:11) at java.util.TimSort.countRunAndMakeAscending(TimSort.java:351) at java.util.TimSort.sort(TimSort.java:216) at java.util.Arrays.sort(Arrays.java:1512) at java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:348) at java.util.stream.Sink$ChainedReference.end(Sink.java:258) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Caused by: java.lang.NullPointerException at com.atlassian.jira.util.Named$1.compare(Named.java:14) [jira-api-7.0.4.jar:?] at com.atlassian.jira.util.Named$1.compare(Named.java:11) [jira-api-7.0.4.jar:?] at java.util.TimSort.countRunAndMakeAscending(TimSort.java:351) [?:1.8.0_20] at java.util.TimSort.sort(TimSort.java:216) [?:1.8.0_20] at java.util.Arrays.sort(Arrays.java:1512) [?:1.8.0_20] at java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:346) [?:1.8.0_20] at java.util.stream.Sink$ChainedReference.end(Sink.java:258) [?:1.8.0_20] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513) [?:1.8.0_20] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) [?:1.8.0_20] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) [?:1.8.0_20] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) [?:1.8.0_20] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) [?:1.8.0_20] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) [?:1.8.0_20] at com.atlassian.jira.project.ProjectCache.refreshCategoryProjectMappings(ProjectCache.java:199) [ProjectCache.class:?] at com.atlassian.jira.project.ProjectCache.init(ProjectCache.java:91) [ProjectCache.class:?] at com.atlassian.jira.project.ProjectCache.<init>(ProjectCache.java:78) [ProjectCache.class:?] at com.atlassian.jira.project.CachingProjectManager$ProjectCacheSupplier.get(CachingProjectManager.java:274) [CachingProjectManager$ProjectCacheSupplier.class:?]

Diagnosis

This can occur when:

  • Performing a JIRA upgrade or restoration

  • A project is recently deleted

Diagnostic Steps

Run the SQL query below to verify if there are references to non-existent projects:

1 select * from nodeassociation where source_node_entity = 'Project' and source_node_id not in (select id from project);

Cause

There are some non-existent project IDs in the nodeassocation table.

Solution

Resolution

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

To fix this, stop your JIRA instance and execute the delete SQL query below to remove the entries:

1 delete from nodeassociation where source_node_entity = 'Project' and source_node_id not in (select id from project);

If you encounter this, please make a comment on the relating bug report:

Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.