Jira subscription emails are piling up in the Mail Error Queue and making the "Mail Queue Error" health check fail

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

This article describes a scenario where Jira filter subscription emails are piling up in the Mail Error Queue (in ⚙ > System > Mail Queue), causing a warning in the UI coming from the the Mail Error Queue Health Check.

Environment

Jira Data Center on any version from 9.8.0.

Diagnosis

  • Check if you can find either error listed below in the Jira log files:

    • Look for the error below in the Jira Outgoing Mail Logs (atlassian-jira-outgoing-mail.log files), especially the java.lang.NullPointerException that is thrown by the com.atlassian.jira.issue.search.parameters.lucene.DefaultPermissionQueryFactory.collectProjectTerms method:

      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 35 36 37 38 39 40 2024-05-28 13:16:03,188+0000 ERROR [] Sending mailitem com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem owner: 'someuser' anonymous Mail Queue Service [c.a.mail.queue.MailQueueImpl] Error occurred in sending e-mail: com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem owner: 'someuser' com.atlassian.mail.MailException: java.lang.NullPointerException at com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem.send(SubscriptionSingleRecepientMailQueueItem.java:106) [classes/:?] at com.atlassian.mail.queue.MailQueueImpl.sendBufferUnderLock(MailQueueImpl.java:83) [atlassian-mail-5.1.3.jar:?] at com.atlassian.mail.queue.MailQueueImpl.sendBuffer(MailQueueImpl.java:47) [atlassian-mail-5.1.3.jar:?] at com.atlassian.jira.mail.JiraMailQueue.lambda$sendBuffer$0(JiraMailQueue.java:49) [classes/:?] at com.atlassian.jira.util.velocity.DefaultVelocityRequestContextFactory.runWithStaticBaseUrl(DefaultVelocityRequestContextFactory.java:110) [classes/:?] at com.atlassian.jira.util.DefaultBaseUrl.runWithStaticBaseUrl(DefaultBaseUrl.java:56) [classes/:?] at com.atlassian.jira.mail.JiraMailQueue.sendBuffer(JiraMailQueue.java:48) [classes/:?] at com.atlassian.jira.service.services.mail.MailQueueService.run(MailQueueService.java:21) [classes/:?] at com.atlassian.jira.service.JiraServiceContainerImpl.run(JiraServiceContainerImpl.java:68) [classes/:?] at com.atlassian.jira.service.ServiceRunner.runService(ServiceRunner.java:62) [classes/:?] at com.atlassian.jira.service.ServiceRunner.runServiceId(ServiceRunner.java:44) [classes/:?] at com.atlassian.jira.service.ServiceRunner.runJob(ServiceRunner.java:32) [classes/:?] at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:134) [atlassian-scheduler-core-4.0.0.jar:?] at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:106) [atlassian-scheduler-core-4.0.0.jar:?] at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:90) [atlassian-scheduler-core-4.0.0.jar:?] at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.launchJob(CaesiumSchedulerService.java:500) [atlassian-scheduler-caesium-3.1.4.jar:?] at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeLocalJobWithRetryOnFailure(CaesiumSchedulerService.java:463) [atlassian-scheduler-caesium-3.1.4.jar:?] at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:413) [atlassian-scheduler-caesium-3.1.4.jar:?] at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(SchedulerQueueWorker.java:66) [atlassian-scheduler-caesium-3.1.4.jar:?] at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(SchedulerQueueWorker.java:60) [atlassian-scheduler-caesium-3.1.4.jar:?] at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.run(SchedulerQueueWorker.java:35) [atlassian-scheduler-caesium-3.1.4.jar:?] at java.base/java.lang.Thread.run(Thread.java:829) [?:?] Caused by: java.lang.NullPointerException at com.atlassian.jira.issue.search.parameters.lucene.DefaultPermissionQueryFactory.collectProjectTerms(DefaultPermissionQueryFactory.java:141) [classes/:?] at com.atlassian.jira.issue.search.parameters.lucene.DefaultPermissionQueryFactory.createQuery(DefaultPermissionQueryFactory.java:79) [classes/:?] at com.atlassian.jira.issue.search.parameters.lucene.DefaultPermissionQueryFactory.getQuery(DefaultPermissionQueryFactory.java:62) [classes/:?] at com.atlassian.jira.issue.search.parameters.lucene.PermissionsFilterGeneratorImpl.getQuery(PermissionsFilterGeneratorImpl.java:37) [classes/:?] at com.atlassian.jira.issue.search.util.DefaultPermissionQueryCache.getPermissionQuery(DefaultPermissionQueryCache.java:58) [classes/:?] at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.getPermissionsQuery(LuceneSearchProvider.java:429) [classes/:?] at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.getHits(LuceneSearchProvider.java:228) [classes/:?] at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(LuceneSearchProvider.java:375) [classes/:?] at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(LuceneSearchProvider.java:138) [classes/:?] at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(LuceneSearchProvider.java:143) [classes/:?] at com.atlassian.jira.bc.issue.search.DefaultSearchService.search(DefaultSearchService.java:118) [classes/:?] at com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem.getContextParams(SubscriptionSingleRecepientMailQueueItem.java:242) [classes/:?] at com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem.sendSearchRequestEmail(SubscriptionSingleRecepientMailQueueItem.java:118) [classes/:?] at com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem.send(SubscriptionSingleRecepientMailQueueItem.java:103) [classes/:?] ... 21 more
    • Look for the error below in the Jira Application Logs (atlassian-jira.log files):

      1 2 3 4 5 6 7 8 9 10 11 12 2024-05-27 13:07:00,017+0000 Sending mailitem com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem owner: 'someuser' WARN someuser    Mail Queue Service [c.a.jira.permission.DefaultPermissionSchemeManager] No permission scheme is associated with project 'Some Project 2024-05-27 13:07:00,017+0000 Sending mailitem com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem owner: 'someuser' ERROR anonymous Mail Queue Service [c.a.jira.mail.SubscriptionSingleRecepientMailQueueItem] java.lang.NullPointerException at com.atlassian.jira.issue.search.parameters.lucene.DefaultPermissionQueryFactory.collectProjectTerms(DefaultPermissionQueryFactory.java:141) at com.atlassian.jira.issue.search.parameters.lucene.DefaultPermissionQueryFactory.createQuery(DefaultPermissionQueryFactory.java:79) at com.atlassian.jira.issue.search.parameters.lucene.DefaultPermissionQueryFactory.getQuery(DefaultPermissionQueryFactory.java:62) at com.atlassian.jira.issue.search.parameters.lucene.PermissionsFilterGeneratorImpl.getQuery(PermissionsFilterGeneratorImpl.java:37) at com.atlassian.jira.issue.search.util.DefaultPermissionQueryCache.getPermissionQuery(DefaultPermissionQueryCache.java:58) at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.getPermissionsQuery(LuceneSearchProvider.java:429) at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.getHits(LuceneSearchProvider.java:228) at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(LuceneSearchProvider.java:375) at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(LuceneSearchProvider.java:138)
  • If you find either error, then this KB article is relevant and you may move on to the Solution section

ℹ️ Note that the error below might also be seen in the Jira Application Logs (atlassian-jira.log files):

1 2024-05-28 12:12:00,479+0000 Sending mailitem com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem owner: 'someuser' WARN someuser Mail Queue Service [c.a.jira.permission.DefaultPermissionSchemeManager] No permission scheme is associated with project 'Some Project'

Cause

The exact root cause is unclear at this moment. We suspect that there is some caching issue with at least one of the Jira node in the cluster of Jira Data Center nodes. In other words, at least one of the Jira node has corrupted data cache related to the Project Permission scheme, causing the Null Pointer error found in the Jira logs while generating the filter subscription email (the subscription email relies on the project permissions to decide which Jira issues to show in the subscription email sent to a specific Jira user).

Solution

The solution consists in clearing the cache of all Jira nodes, by re-starting all of them. The recommended steps are listed below:

  1. Shutdown all Jira nodes

  2. Once all the nodes are stopped, start them 1 by 1

  3. Wait for the new subscription emails to be sent and verify that they are no longer piling up in the Mail Error Queue

Updated on April 11, 2025

Still need help?

The Atlassian Community is here for you.