I can see see an intermediate timer not firing occasionally. The process halts at intermediate timer catch event. I can see the entry is available in ACT_RU_EXECUTION but not in ACT_RU_TIMER_JOB for given process instance Id. I am using Spring, Java 8 and Flowable 6.4.0.
Have you checked the
ACT_RU_DEADLETTER_JOB. If the process fails 3 times after the timer event is triggered the job will go into the dead letter job table. The 3 times failure is a configuration parameter and 3 is the default value.
@filiphr thanks for your comment. I do see entry in ACT_RU_DEADLETTER_JOB with error unknown property used in expression. But this is strange, because the property is already defined and used on outgoing arrow (fork) in one of the exclusive gateway which is after the intermediate timer. To make it easy and understandable, I have task1 -> intermediate timer -> task2 -> exclusive gateway in my process. Task 2 adds orderStatus based on some business logic which is used in exclusive gateway to decide further flow. So my question is why it is checking for orderStatus after task1? Ideally it should wait and only check for the orderStatus after task2. Am I missing something? And if this property is not defined then it should fail for all the cases but it is failing randmonly.
Finally I found the cause for this issue. The delegate we have was not adding one runtime variable that is used on exclusive gateway after task2. This was causing the job fail with error unknown property used in expression. The orderStatus is used on exclusive gateway to decide the further flow and it was missing in one of the condition and causing the issue. So conclusion is if we any runtime variable used in process then make sure that we always add it during execution (may be with default value).