HTTP Webhook Error 500 when supplying a response expression

Hi

I’ve followed the example in the Camunda Academy example but I am getting a server 500 error as soon as I add the Webhook Response expression e.g. {message: “Hello”}. Without the expression I get a successful server response but obviously no body as nothing is configured.

I am running the Camunda Cloud 30 day evaluation.

How do I trouble shoot this? Are there logs viewable?

https://academy.camunda.com/c8-how-to-http-webhook-connector/1565841

Hi @Alain_Jaques - good questions! First, can you attach your BPMN model?

Hi @nathan.loding thanks for responding. Attached is the BPMN.
Webhook API Request.bpmn (4.7 KB)

This is the successful response with nothing set in the response expression

When I add the response expression I then get a 500 error from the API

@Alain_Jaques - I don’t think I’ve seen a 500 error from this before. Here’s one solution to try:

I suspect the issue is the same as what the user encountered. Let me know if this fixes it or not, so I can provide this feedback to the product team!

1 Like

Thanks I’ll give it a try and let you know the result.

Hi… success!!!

The inbound.responseExpression is the issue. When I changed it in the XML editor to inbound.ResponseBodyExpression it works. The downside is that the modeler does not recognise this and does not display the Response expression even though it exists in the XML. If you retype it in the modeler then it reverts back to the inbound.responseExpression and then fails to work until you re-edit the XML.

Camunda people this is a bug you should prioritise to fix. Getting a REST API response is a basic piece of functionality that needs to work effortlessly as per the tutorial and instructions.

1 Like

Update… the easiest fix (as per the referenced Topic above) is to edit the XML and change the TemplateVersion to 10 (mine was 11). This then displays the Response expression correcly too in the Modeler.

zeebe:modelerTemplateVersion=“10”

Hi @Alain_Jaques - thanks for the feedback; and I agree! It will be resolved in the 8.6 release, but it’s difficult to work with until then. I’ve given this feedback to the product teams and they are already working on a way to ensure this doesn’t happen in future release cycles.

1 Like

This is the complete stack trace from connector runtime btw. I am seeing this in connector v8.6.8

2025-03-10 12:34:15 java.lang.NullPointerException: null
2025-03-10 12:34:15     at java.base/java.util.Objects.requireNonNull(Unknown Source)
2025-03-10 12:34:15     at io.camunda.connector.runtime.inbound.webhook.InboundWebhookRestController.escapeValue(InboundWebhookRestController.java:88)
2025-03-10 12:34:15     at io.camunda.connector.runtime.inbound.webhook.InboundWebhookRestController.toResponseEntity(InboundWebhookRestController.java:84)
2025-03-10 12:34:15     at io.camunda.connector.runtime.inbound.webhook.InboundWebhookRestController.buildSuccessfulResponse(InboundWebhookRestController.java:188)
2025-03-10 12:34:15     at io.camunda.connector.runtime.inbound.webhook.InboundWebhookRestController.buildResponse(InboundWebhookRestController.java:157)
2025-03-10 12:34:15     at io.camunda.connector.runtime.inbound.webhook.InboundWebhookRestController.processWebhook(InboundWebhookRestController.java:134)
2025-03-10 12:34:15     at io.camunda.connector.runtime.inbound.webhook.InboundWebhookRestController.lambda$inbound$0(InboundWebhookRestController.java:112)
2025-03-10 12:34:15     at java.base/java.util.Optional.map(Unknown Source)
2025-03-10 12:34:15     at io.camunda.connector.runtime.inbound.webhook.InboundWebhookRestController.inbound(InboundWebhookRestController.java:107)

@deepakkapoor23 - please open a new thread for that issue, please tag me in it. Please also include details on how you’ve configured the connector (for instance, a screenshot of the details pane in Modeler).

Its the same issue discussed on this post and here. Changing the expression to inbound.responseBodyExpression resolves it but I am still seeing it on v8.6.8. I thought it was fixed in release 8.6?

@deepakkapoor23 - are you using Self-Managed or SaaS?

self managed - I am running the entire stack in docker compose

@deepakkapoor23 - are you using the default docker-compose configuration, or have you made changes to it? I’d like to do some testing and see what might be happening.

its the default config, I havent changed it much. Here’s how the connectors service looks:

  connectors: # https://docs.camunda.io/docs/components/integration-framework/connectors/out-of-the-box-connectors/available-connectors-overview/
    image: camunda/connectors-bundle:8.6.8
    container_name: connectors
    ports:
      - "8085:8080"
    environment:
      - ZEEBE_CLIENT_BROKER_GATEWAY-ADDRESS=zeebe:26500
      - ZEEBE_CLIENT_SECURITY_PLAINTEXT=true
      - ZEEBE_CLIENT_ID=${ZEEBE_CLIENT_ID}
      - ZEEBE_CLIENT_SECRET=${ZEEBE_CLIENT_SECRET}
      - ZEEBE_CLIENT_CONFIG_PATH=/tmp/zeebe_auth_cache
      - ZEEBE_TOKEN_AUDIENCE=zeebe-api
      - ZEEBE_AUTHORIZATION_SERVER_URL=http://keycloak:18080/auth/realms/camunda-platform/protocol/openid-connect/token
      - CAMUNDA_OPERATE_CLIENT_URL=http://operate:8080
      - CAMUNDA_IDENTITY_ISSUER_URL=http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform
      - CAMUNDA_IDENTITY_ISSUER_BACKEND_URL=http://keycloak:18080/auth/realms/camunda-platform
      - CAMUNDA_IDENTITY_CLIENT_ID=connectors
      - CAMUNDA_IDENTITY_CLIENT_SECRET=XALaRPl5qwTEItdwCMiPS62nVpKs7dL7
      - CAMUNDA_IDENTITY_TYPE=KEYCLOAK
      - CAMUNDA_IDENTITY_AUDIENCE=operate-api
      - LOGGING_LEVEL_IO_CAMUNDA_CONNECTOR=DEBUG
      - LOGGING_LEVEL_IO_CAMUNDA_ZEEBE_CLIENT_IMPL=OFF
      - management.endpoints.web.exposure.include=health
      - management.endpoint.health.probes.enabled=true
    env_file: connector-secrets.txt
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:8080/actuator/health/readiness"]
      interval: 30s
      timeout: 1s
      retries: 5
      start_period: 30s
    networks:
      - camunda-platform
    depends_on:
      - zeebe
      - operate
      - identity
    profiles:
      - ''
      - orchestration

Hi @deepakkapoor23 - I wasn’t able to recreate this. Can you share the BPMN model you’re working with?

sure, please find attached a sample bpmn.

WebhookTest.bpmn (9.7 KB)