Sporadic NoSuchElementException from the web UI

Hello

we use s SpringBoot application with embedded camunda.
When i use the web UI, i see sporadic error in the log “could not find a historic process instance …”.
I assume the reason is, that the free version is blocking something only available in the comercial version?!

Is there a way to prevent those exceptions polluting my log?

Complete Exception:
2020-02-03 10:49:16.803 [ERROR] [http-nio-7000-exec-6] o.a.c.c.C.[.[.[.0.[dispatcherServlet].log:175 [] Servlet.service() for servlet [dispatcherServlet] in context with path [/workflowservice/api/rest/1.0] threw exception [Request processing failed; nested exception is java.util.NoSuchElementException: could not find a historic process instance with business key 0e642d4f-464d-4649-b015-f8d81a3bcb67] with root cause
java.util.NoSuchElementException: could not find a historic process instance with business key 0e642d4f-464d-4649-b015-f8d81a3bcb67
at com.camunda.workflow.api.WorkFlowApi.getProcessInstanceProgressByBusinessKey(WorkFlowApi.java:157)
at com.camunda.workflow.rest.WorkflowService.getWorkflowInstanceProgressByBusinessKey(WorkflowService.java:175)
at sun.reflect.GeneratedMethodAccessor828.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020-02-03 10:49:16.819 [ERROR] [http-nio-7000-exec-2] o.a.c.c.C.[.[.[.0.[dispatcherServlet].log:175 [] Servlet.service() for servlet [dispatcherServlet] in context with path [/workflowservice/api/rest/1.0] threw exception [Request processing failed; nested exception is java.util.NoSuchElementException: could not find a historic process instance with business key 74a0f085-c2b0-4198-ac17-4f63b4445f42] with root cause

Why would you assume that?
There is nothing in the Enterprise version of the engine that isn’t in the Open Source version of the engine. So can assure you, that isn’t the problem.

Maybe if you give some more context we could help. like the version of camunda, the model you’ve deployed… that sort of thing.

ok. the assumption is: The free version is missing the history feature.
The error is logged in the following scenario:

  • i look at a running process in the cockpit
  • the process is finished (therefore the free version is no longer allowed to show it)
  • i press reload in the browser

i attache an example pom file:
pom.xml (3.2 KB)

This history is still stored in both versions, but only the EE version’s front end implements the API’s to view the history.

The camunda version used in the POM is 3.3.1

if you need more information from me to troubleshoot, feel free to ask.

The bug was in a internal (written by us) cockpit plugin

Thanks for letting us know, glad you fixed it :slight_smile:

This exception is thrown by various accessor methods to indicate that the element being requested does not exist . The next() method in Java returns the next element in the iteration or NoSuchElementException if the iteration has no more elements. The solution to this​ exception is to check whether the next position of an iterable is filled or empty. You should only move to this position if the check returns that the position is not empty. The following methods are used to check the next position:

  • hasNext()
  • hasMoreElements()