Why do FolderClosedException occur

Why does it happen

Your mailserver can drop connections for two main reasons:

Too many concurrent logins using the same account

Your mailserver may simply kill off the one that is oldest, which was unfortunately still in use. To check if this is a problem, count how many inbound mail servers you have defined using the same account. If its more than 15 you could be affected.

Mails are taking too long to download

The mailserver may determine the connection ‘dead’ if it takes too long to complete, caused by large emails taking too long.

JEMH

To verify if this problem affects you, and action you can take to increase the default batching size as described in Download performance of POP vs IMAP.

If you have just upgraded your Jira, check that you have migrated the customization to the environment (eg setenv.sh)

JEMHC

JEMHC automatically sets the properties to avoid batch size related problems.

When I see FolderClosed, is that a bug?

No, this is not a bug, it's just the consequence of your mail-server closing the connection to JEMH/C whilst the mail was still being read (by JEMH). It is not caused by JEMH/C and cannot be solved by JEMH/C. See Impact and Migration steps possible:

When a FolderClosedException occurs, it stops all mail processing, specifically, as the mail was not read fully:

  • it was not processed at all, will not be consumed / marked read and will be retried

  • it will not be available in JEMH Auditing and cannot be exported as part of the support zip

JEMH Specific diagnostics

What you see in JEMH Auditing

Current versions of JEMH prevent the ‘download’ button operating and show the following information dialog:

The popup links to Download performance of POP vs IMAP and an Atlassian article:
https://confluence.atlassian.com/jirakb/imap-mail-fails-with-folderclosedexception-in-logs-in-jira-server-385319403.html .

JEMH Logs

Below is a stack trace error for the FolderClosedException that shows up in the 'atlassian-jira-incoming-mail.log', jemh.log and the JEMH processing Report.

2013-07-12 09:52:50,478 ERROR [xxx] QuartzScheduler_Worker-3 ServiceRunner xxxx[xxxxx]: Exception: null javax.mail.FolderClosedException at com.sun.mail.imap.IMAPMessage.getProtocol(IMAPMessage.java:145) at com.sun.mail.imap.IMAPMessage.getHeader(IMAPMessage.java:743) at com.atlassian.jira.service.services.mail.MailFetcherService$MessageProviderImpl.getAndProcessMail(MailFetcherService.java:257) at com.atlassian.jira.service.services.mail.MailFetcherService.runImpl(MailFetcherService.java:356) at com.atlassian.jira.service.services.file.AbstractMessageHandlingService.run(AbstractMessageHandlingService.java:257) at com.atlassian.jira.service.JiraServiceContainerImpl.run(JiraServiceContainerImpl.java:61) at com.atlassian.jira.service.ServiceRunner.execute(ServiceRunner.java:48) at org.quartz.core.JobRunShell.run(JobRunShell.java:195)