Error when Connectors try to comunicate to Operate with Identity disabled

Hi,

I’m getting erro when Camunda Connectors try to comunicate with Camunda Operate. It’s a NullPointerException. I’m launch Camunda 8 self managed in AWS EKS using the Helm with AWS LB as k8s ingress and Camunda Identity disabled.

Here are some logs from Camunda Connectors:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myOperateClient' defined in class path resource [io/camunda/connector/runtime/InboundConnectorsAutoConfiguration.class]: Failed to instantiate [io.camunda.operate.CamundaOperateClient]: Factory method 'myOperateClient' threw exception with message: Cannot invoke "org.apache.hc.core5.http.Header.getValue()" because the return value of "org.apache.hc.client5.http.impl.classic.CloseableHttpResponse.getHeader(String)" is null
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:654)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:642)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1332)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1162)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:910)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
	... 61 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.camunda.operate.CamundaOperateClient]: Factory method 'myOperateClient' threw exception with message: Cannot invoke "org.apache.hc.core5.http.Header.getValue()" because the return value of "org.apache.hc.client5.http.impl.classic.CloseableHttpResponse.getHeader(String)" is null
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:171)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:650)
	... 75 common frames omitted
Caused by: java.lang.NullPointerException: Cannot invoke "org.apache.hc.core5.http.Header.getValue()" because the return value of "org.apache.hc.client5.http.impl.classic.CloseableHttpResponse.getHeader(String)" is null
	at io.camunda.operate.auth.SimpleAuthentication.authenticate(SimpleAuthentication.java:49)
	at io.camunda.operate.CamundaOperateClient$Builder.build(CamundaOperateClient.java:273)
	at io.camunda.zeebe.spring.client.configuration.OperateClientProdAutoConfiguration.lambda$camundaOperateClient$0(OperateClientProdAutoConfiguration.java:51)
	at io.github.resilience4j.retry.Retry.lambda$decorateSupplier$4(Retry.java:211)
	at io.github.resilience4j.retry.Retry.executeSupplier(Retry.java:361)
	at io.camunda.zeebe.spring.client.configuration.OperateClientProdAutoConfiguration.camundaOperateClient(OperateClientProdAutoConfiguration.java:46)
	at io.camunda.connector.runtime.InboundConnectorsAutoConfiguration.myOperateClient(InboundConnectorsAutoConfiguration.java:50)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:139)
	... 76 common frames omitted

It seems like some configuration is missing, but I can’t find which one.

I saw something interesting. I’m running Camunda 8 without Identity for while. So, when Camunda Connectors tried to connect to Camunda Operate, the credentials configured by Helm were not “demo” “demo”. The default configurations use the folowing configuration in my case:

login: connectors
password: generated and saved on k8s secrets

So I needed to change my helm configurations to use “demo” “demo” as credentials to establish connection.

There are an configuration on the helm chart to setup auth in Camunda Connectors. In the GitHub page that show all properties available there are an interesting configuration: connectors.inbound.auth. The problem is: There aren’t any example that show how to configure that. Do you know how to setup this properties in the Helm chart for Camunda Connectors?