HTTP Webhook Intermediate Catch Event

Hi,
I was exploring on the HTTP Webhook Intermediate Catch Event and faced on issue when I tried to hit the endpoint for the webhook to get triggered. But, I am getting a 422 - “Unprocessable Entity” status.

Process:


Postman:

When I dug deeper in the connector logs, I got this

2023-12-11 14:46:30 2023-12-11T09:16:30.735Z  INFO 1 --- [nio-8080-exec-8] i.c.c.r.i.w.InboundWebhookRestController : Webhook: InboundConnectorDefinitionImpl{correlationPoint=MessageCorrelationPoint[messageName=09d82f9a-8a6e-4267-affb-a03c7a28ac12, correlationKeyExpression==email, messageIdExpression=null], bpmnProcessId='Process_0nbw60s', version=16, processDefinitionKey=2251799813836595, elementId='Event_1xf2xim, tenantId='<default>'} failed with exception
2023-12-11 14:46:30 
2023-12-11 14:46:30 io.camunda.connector.api.error.ConnectorException: Correlation key not resolved: =email
2023-12-11 14:46:30     at io.camunda.connector.runtime.core.inbound.correlation.InboundCorrelationHandler.lambda$triggerMessage$0(InboundCorrelationHandler.java:182)
2023-12-11 14:46:30     at java.base/java.util.Optional.orElseThrow(Unknown Source)
2023-12-11 14:46:30     at io.camunda.connector.runtime.core.inbound.correlation.InboundCorrelationHandler.triggerMessage(InboundCorrelationHandler.java:180)
2023-12-11 14:46:30     at io.camunda.connector.runtime.core.inbound.correlation.InboundCorrelationHandler.correlate(InboundCorrelationHandler.java:61)
2023-12-11 14:46:30     at io.camunda.connector.runtime.core.inbound.correlation.InboundCorrelationHandler.correlate(InboundCorrelationHandler.java:50)
2023-12-11 14:46:30     at io.camunda.connector.runtime.inbound.lifecycle.MeteredInboundCorrelationHandler.correlate(MeteredInboundCorrelationHandler.java:52)
2023-12-11 14:46:30     at io.camunda.connector.runtime.core.inbound.InboundConnectorContextImpl.correlate(InboundConnectorContextImpl.java:66)
2023-12-11 14:46:30     at io.camunda.connector.runtime.inbound.webhook.InboundWebhookRestController.processWebhook(InboundWebhookRestController.java:107)
2023-12-11 14:46:30     at io.camunda.connector.runtime.inbound.webhook.InboundWebhookRestController.lambda$inbound$0(InboundWebhookRestController.java:85)
2023-12-11 14:46:30     at java.base/java.util.Optional.map(Unknown Source)
2023-12-11 14:46:30     at io.camunda.connector.runtime.inbound.webhook.InboundWebhookRestController.inbound(InboundWebhookRestController.java:80)
2023-12-11 14:46:30     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2023-12-11 14:46:30     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2023-12-11 14:46:30     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2023-12-11 14:46:30     at java.base/java.lang.reflect.Method.invoke(Unknown Source)
2023-12-11 14:46:30     at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
2023-12-11 14:46:30     at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
2023-12-11 14:46:30     at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
2023-12-11 14:46:30     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884)
2023-12-11 14:46:30     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
2023-12-11 14:46:30     at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
2023-12-11 14:46:30     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081)
2023-12-11 14:46:30     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974)
2023-12-11 14:46:30     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011)
2023-12-11 14:46:30     at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)
2023-12-11 14:46:30     at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)
2023-12-11 14:46:30     at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
2023-12-11 14:46:30     at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
2023-12-11 14:46:30     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
2023-12-11 14:46:30     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
2023-12-11 14:46:30     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
2023-12-11 14:46:30     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
2023-12-11 14:46:30     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
2023-12-11 14:46:30     at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
2023-12-11 14:46:30     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
2023-12-11 14:46:30     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
2023-12-11 14:46:30     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
2023-12-11 14:46:30     at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
2023-12-11 14:46:30     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
2023-12-11 14:46:30     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
2023-12-11 14:46:30     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
2023-12-11 14:46:30     at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)
2023-12-11 14:46:30     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
2023-12-11 14:46:30     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
2023-12-11 14:46:30     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
2023-12-11 14:46:30     at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
2023-12-11 14:46:30     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
2023-12-11 14:46:30     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
2023-12-11 14:46:30     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
2023-12-11 14:46:30     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
2023-12-11 14:46:30     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
2023-12-11 14:46:30     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
2023-12-11 14:46:30     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
2023-12-11 14:46:30     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
2023-12-11 14:46:30     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
2023-12-11 14:46:30     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
2023-12-11 14:46:30     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
2023-12-11 14:46:30     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
2023-12-11 14:46:30     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
2023-12-11 14:46:30     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
2023-12-11 14:46:30     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
2023-12-11 14:46:30     at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
2023-12-11 14:46:30     at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
2023-12-11 14:46:30     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
2023-12-11 14:46:30     at java.base/java.lang.Thread.run(Unknown Source)

I am suspecting a bug, because in the line 1 of above logs, am able to see correlationKeyExpression==email, which I think is correlationKeyExpression is being sent as =email instead of just email to the service. Or, am I missing something in the configuration? Any help regarding the same is appreciated.

Thanks in Advance.

Hi @Hariharan_B - can you share the details of how you’ve configured the catch event? It looks like an issue with the correlation key. What do you have set for the two “Correlation Key” values (process and payload)? It might be good to double check the documentation on the correlation keys (here and here), and make sure you’ve got everything configured properly in your model.

Thanks for the reply, @nathan.loding . Here is my configuration screenshot

@Hariharan_B - I missed this in your original post; the Postman screenshot does not contain a body. It needs to contain at least the email element ({ email: "hari" }), because you set email to be the correlation key.