Cyclic fetch mail from ms exchange server

I model a process for fetching mail every minute (R/PT1M) from a exchange server.
It runs on camunda 7.5

It happens sometimes (not every time!) that process stops cycling after an exception due to connection reset. I know exchange service connection method is not thread safe, hence process create a new connection instance every time.
The connection reset exception is caused by an exchange server restart on every night.
Ok, I say:catch the exception but keep running…
No it’s not.
And not even a camunda/tomcat restart can ‘wakeup’ this process.
No errors. No exceptions.
Only modifying the model (file.bpmn) and re-deploy, the process starts again.

Any idea or explanation?

Details:
camunda 7.5
tomcat 7
Exchange server version: 2010
process.xml property-> <property name="jobExecutorActivate">true</property>
the way I start the process: in PostDeploy hook with
engine.getRuntimeService().startProcessInstanceById("my-cyclic-process", createVariables());

Exception:

SEVERE [pool-2-thread-3] org.camunda.commons.logging.BaseLogger.logError ENGINE-16004 Exception while closing command context: couldn't execute activity <serviceTask id="EmailFetcher" ...>: The request failed. The request failed. Connect to mail.service.it:443 failed: Connection refused
 org.camunda.bpm.engine.impl.pvm.PvmException: couldn't execute activity <serviceTask id="EmailFetcher" ...>: The request failed. The request failed. Connect to mail.service.it:443 failed: Connection refused
        at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute.execute(PvmAtomicOperationActivityExecute.java:45)
.....
Caused by: microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRequestException: The request failed. The request failed. Connect to mail.service.it:443  failed: Connection refused
        at microsoft.exchange.webservices.data.core.request.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:74)
        at microsoft.exchange.webservices.data.core.request.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:158)
        at microsoft.exchange.webservices.data.core.ExchangeService.bindToFolder(ExchangeService.java:504)
        at microsoft.exchange.webservices.data.core.ExchangeService.bindToFolder(ExchangeService.java:523)
        at microsoft.exchange.webservices.data.core.service.folder.Folder.bind(Folder.java:98)
        at microsoft.exchange.webservices.data.core.service.folder.Folder.bind(Folder.java:147)

Hi @fra,

could you please attach your process definition?

Cheers,
Askar

start-tasks-from-emails.bpmn (3.9 KB)

And this is the delegate service class attached

public class MailFetcherExecutionListener implements JavaDelegate {	
	@Override
	public void execute(DelegateExecution execution) throws Exception {	
		try {	
			MailManager  mailManager= MailManagerService.getManager(); // get 'ExchangeService' properly initiailzed
			FetchedEMail fe = mailManager.fetchMail(1, true); //execute 'Folder.bind(exchangeService, WellKnownFolderName.Inbox)'
	
			if (fe.getEmails().isEmpty())
				return;
				
			Iterator<EmailRecord> it = fe.getEmails().values().iterator();
			while (it.hasNext()) {
				EmailRecord emailEntry = it.next();
				
				//String startKey 
				Map<String, String> keymap = findStartKeyword(emailEntry);
				...
			}
		
		}catch (Exception e){
			throw e;
		}

	}