AxonServer subscribtion query results in INTERNAL: AXONIQ-5000

Hi All,

I’am using subscription queries to wait for the result of my command processing for test purposes. Some command run successfully, others result in a io.grpc.StatusRuntimeException: INTERNAL: AXONIQ-5000 in my axonserver.

I’am using kotlin data classes to define the commands and events, could this have anything to do with this exception? I experimented with adding kotlin and Jackson libs to the classpath of the axonserver and start it like this:

java -classpath “/tmp/jackson-annotations-2.10.1.jar;/tmp/jackson-databind-2.10.1.jar;/tmp/jackson-module-kotlin-2.10.1.jar:/tmp/kotlin-stdlib-jdk8-1.3.50.jar” -jar axonserver.jar

This way the warning during axon server startup is gone: " org.springframework.web.HttpLogging : For Jackson Kotlin classes support please add “com.fasterxml.jackson.module:jackson-module-kotlin” to the classpath".

However the org.springframework.core.KotlinDetector is still logging - “Kotlin reflection implementation not found at runtime, related features won’t be available”.

I’am really in the dark here, the stacktrace from the axonserver is:

2020-01-05 23:17:41.081  INFO 13569 --- [query.family]-0] c.w.e.d.q.family.FamilyEventListener     : Emit on queryUpdate for class class com.yyy.QueryByRequesterId with value RequesterId(id=822fdd1b-db9c-4776-a302-49bc84479a25)

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is io.grpc.StatusRuntimeException: INTERNAL: AXONIQ-5000
   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
   at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:706)
   at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
   at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:72)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:791)
   at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:167)
   at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)
   at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
   at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)
   at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
   at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)
   at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
   at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)
   at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:183)
   at com.yyy.base.RestStepsDef.postAndAssert(RestStepsDef.java:92)
   at com.yyy.PointRequestStepsDef.aUserAndARelatedJudge(PointRequestStepsDef.java:34)
   at ✽.a Family with a judge and a user(yyy/src/test/resources/feature/earnPoints.feature:10)
Caused by: io.grpc.StatusRuntimeException: INTERNAL: AXONIQ-5000
   at io.grpc.Status.asRuntimeException(Status.java:533)
   at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:442)
   at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
   at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
   at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
   at io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:700)
   at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39)
   at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23)
   at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40)
   at io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:399)
   at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:507)
   at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:66)
   at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:627)
   at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$700(ClientCallImpl.java:515)
   at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:686)
   at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:675)
   at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
   at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base/java.lang.Thread.run(Thread.java:834)
   Suppressed: java.lang.Exception: #block terminated with an error
      at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:133)
      at reactor.core.publisher.Flux.blockFirst(Flux.java:2460)
      at com.yyy.base.command.BlockingCommandGateway.waitForResult(BlockingCommandGateway.java:91)
      at com.yyy.base.command.BlockingCommandGateway.sendAndBlockUntilProcessed(BlockingCommandGateway.java:84)
      at com.yyy.RequesterRestController.addRequesterToFamily(RequesterRestController.java:44)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      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:106)
      at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)
      at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
      at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
      at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:706)
      at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
      at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:72)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:791)
      at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:167)
      at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)
      at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
      at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)
      at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
      at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)
      at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
      at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)
      at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:183)
      at com.yyy.base.RestStepsDef.postAndAssert(RestStepsDef.java:92)
      at com.yyy.PointRequestStepsDef.aUserAndARelatedJudge(PointRequestStepsDef.java:34)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      at cucumber.runtime.Utils$1.call(Utils.java:26)
      at cucumber.runtime.Timeout.timeout(Timeout.java:16)
      at cucumber.runtime.Utils.invoke(Utils.java:20)
      at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:49)
      at cucumber.runner.PickleStepDefinitionMatch.runStep(PickleStepDefinitionMatch.java:50)
      at cucumber.runner.TestStep.executeStep(TestStep.java:63)
      at cucumber.runner.TestStep.run(TestStep.java:49)
      at cucumber.runner.PickleStepTestStep.run(PickleStepTestStep.java:43)
      at cucumber.runner.TestCase.run(TestCase.java:44)
      at cucumber.runner.Runner.runPickle(Runner.java:40)
      at cucumber.runtime.Runtime$1.run(Runtime.java:84)
      at cucumber.runtime.Runtime$SameThreadExecutorService.execute(Runtime.java:220)
      at cucumber.runtime.Runtime.run(Runtime.java:81)
      at cucumber.api.cli.Main.run(Main.java:26)
      at cucumber.api.cli.Main.main(Main.java:8)

When I don’t use the subscription queries and just send the command to the commandbus the commands are successfully processed.

Any hints are very much appreciated!

Regards,

Frank

Hi Frank,

the error code AXONIQ-5000 means no handler could be found for the query that you sent. Make sure the “serialized type” of the sender matches the one expected by the recipient. This could differ, for example, if you have different serializers on both sides, or if you use aliases on one side and not on the other.

Which version of AxonFramework do you use? You should be getting a “NoHandlerFoundForQueryException” in the component that sends the query.

Kind regards,

Thanks Allard,

There is a queryHandler for the query, however I did forget to annotate the class with a @Component, so actually there wasn’t… :frowning:

Unfortunately the NoHandlerFoundForQueryException did not occur which would have pointed my in the correct direction. I’am using axon server 4.2.4 and axonframework 4.2.1.

Regards,

Frank

Hi Frank,

I have the same issue. Do you found a solution?

Hi Youssouf,

Yes, I found the solution and replied it to the message….

In short, I forgot to annotate the class with @Component, so it was never pickedup by spring…

Regards,

Frank