Camunda Custom Connector runtime

I am trying to implement a custom connector on my own and when I am trying to configure the runtime using Spring Boot, I am getting the following error -

‘’’
Description:

Parameter 0 of method processDefinitionInspector in io.camunda.connector.runtime.inbound.importer.ProcessDefinitionImportConfiguration required a bean of type ‘io.camunda.operate.CamundaOperateClient’ that could not be found.

Action:

Consider defining a bean of type ‘io.camunda.operate.CamundaOperateClient’ in your configuration.
‘’’

Any workarounds would be helpful. Thanks in advance.

Hey @joe_datrin
same issue for me too, I was about to post the same
@igpetrov please help with this

Thanks in Advance
Praveen

The Connector runtime needs to access Operate via its API in order to scan deployed BPMN models for inbound connectors.

1 Like

Thanks for the reply @jwulf
In my case I’m trying to run an outbound connector for which I have disabled the operate as recommended in the Camunda 8.2.0 connectors - #4 by igpetrov
I have followed this approach to build and run a custom connector How to build a Camunda Platform 8 Connector | Camunda
The application is stopping automatically, logs are below

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.1.1)

2023-07-17T06:42:57.746Z  INFO 1 --- [           main] i.c.c.r.app.ConnectorRuntimeApplication  : Starting ConnectorRuntimeApplication v0.21.3 using Java 17.0.7 with PID 1 (/opt/app/connector-runtime-application-0.21.3-with-dependencies.jar started by root in /)
2023-07-17T06:42:57.794Z  INFO 1 --- [           main] i.c.c.r.app.ConnectorRuntimeApplication  : No active profile set, falling back to 1 default profile: "default"
2023-07-17T06:43:02.070Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'io.camunda.zeebe.spring.client.annotation.processor.AnnotationProcessorConfiguration' of type [io.camunda.zeebe.spring.client.annotation.processor.AnnotationProcessorConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.109Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'io.camunda.connector.runtime.outbound.OutboundConnectorRuntimeConfiguration' of type [io.camunda.connector.runtime.outbound.OutboundConnectorRuntimeConfiguration$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.344Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'zeebe.client-io.camunda.zeebe.spring.client.properties.ZeebeClientConfigurationProperties' of type [io.camunda.zeebe.spring.client.properties.ZeebeClientConfigurationProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.347Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'io.camunda.zeebe.spring.client.configuration.ZeebeClientAllAutoConfiguration' of type [io.camunda.zeebe.spring.client.configuration.ZeebeClientAllAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.357Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'io.camunda.zeebe.spring.client.configuration.ExecutorServiceConfiguration' of type [io.camunda.zeebe.spring.client.configuration.ExecutorServiceConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.369Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusMetricsExportAutoConfiguration' of type [org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusMetricsExportAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.377Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'management.prometheus.metrics.export-org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusProperties' of type [org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.390Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'prometheusConfig' of type [org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusPropertiesConfigAdapter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.406Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'collectorRegistry' of type [io.prometheus.client.CollectorRegistry] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.413Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration' of type [org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.434Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'micrometerClock' of type [io.micrometer.core.instrument.Clock$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.556Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'prometheusMeterRegistry' of type [io.micrometer.prometheus.PrometheusMeterRegistry] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.684Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'zeebeClientThreadPool' of type [io.camunda.zeebe.spring.client.jobhandling.ZeebeClientExecutorService] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.701Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'commandExceptionHandlingStrategy' of type [io.camunda.zeebe.spring.client.jobhandling.DefaultCommandExceptionHandlingStrategy] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.708Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'io.camunda.zeebe.spring.client.CamundaAutoConfiguration' of type [io.camunda.zeebe.spring.client.CamundaAutoConfiguration$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:02.729Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'io.camunda.connector.runtime.OutboundConnectorsAutoConfiguration' of type [io.camunda.connector.runtime.OutboundConnectorsAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:03.676Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'objectMapper' of type [com.fasterxml.jackson.databind.ObjectMapper] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:03.679Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'zeebeJsonMapper' of type [io.camunda.zeebe.client.impl.ZeebeObjectMapper] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:03.682Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'io.camunda.zeebe.spring.client.configuration.ZeebeActuatorConfiguration' of type [io.camunda.zeebe.spring.client.configuration.ZeebeActuatorConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:03.760Z  INFO 1 --- [           main] i.c.z.s.c.a.MicrometerMetricsRecorder    : Enabling Micrometer based metrics for spring-zeebe (available via Actuator)
2023-07-17T06:43:03.763Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'micrometerMetricsRecorder' of type [io.camunda.zeebe.spring.client.actuator.MicrometerMetricsRecorder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:03.765Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'jobWorkerManager' of type [io.camunda.zeebe.spring.client.jobhandling.JobWorkerManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:03.788Z  WARN 1 --- [           main] .c.r.c.o.DefaultOutboundConnectorFactory : No outbound connectors discovered
2023-07-17T06:43:03.789Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'outboundConnectorFactory' of type [io.camunda.connector.runtime.core.outbound.DefaultOutboundConnectorFactory] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:03.827Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'springSecretProviderAggregator' of type [io.camunda.connector.runtime.core.secret.SecretProviderAggregator] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:03.838Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'outboundConnectorManager' of type [io.camunda.connector.runtime.outbound.lifecycle.OutboundConnectorManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:03.846Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'annotationProcessor' of type [io.camunda.connector.runtime.outbound.lifecycle.OutboundConnectorAnnotationProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:03.855Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'deploymentPostProcessor' of type [io.camunda.zeebe.spring.client.annotation.processor.ZeebeDeploymentAnnotationProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:03.864Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'propertyBasedZeebeWorkerValueCustomizer' of type [io.camunda.zeebe.spring.client.properties.PropertyBasedZeebeWorkerValueCustomizer] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:03.871Z  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'zeebeWorkerPostProcessor' of type [io.camunda.zeebe.spring.client.annotation.processor.ZeebeWorkerAnnotationProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2023-07-17T06:43:04.259Z  INFO 1 --- [           main] org.camunda.feel.FeelEngine              : Engine created. [value-mapper: CompositeValueMapper(List(org.camunda.feel.impl.JavaValueMapper@587a1cfb)), function-provider: io.camunda.connector.runtime.core.feel.FeelConnectorFunctionProvider@7b6860f9, clock: SystemClock, configuration: Configuration(false)]
2023-07-17T06:43:04.791Z  INFO 1 --- [           main] z.s.c.c.ZeebeClientProdAutoConfiguration : Creating ZeebeClient using ZeebeClientConfiguration [ZeebeClientConfigurationProperties{broker=Broker{gatewayAddress='127.0.0.1:26500', keepAlive=PT45S}, cloud=io.camunda.zeebe.spring.client.properties.ZeebeClientConfigurationProperties$Cloud@4b039c6d, worker=Worker{maxJobsActive=32, threads=1, defaultName='null', defaultType='null', override={}}, message=Message{timeToLive=PT1H}, security=Security{plaintext=true, overrideAuthority='null', certPath='null'}, job=Job{timeout=PT5M, pollInterval=PT0.1S}, interceptors=[], requestTimeout=PT10S}]
2023-07-17T06:43:07.460Z  INFO 1 --- [           main] i.c.c.r.app.ConnectorRuntimeApplication  : Started ConnectorRuntimeApplication in 12.032 seconds (process running for 13.093)```
1 Like

Hey folks. Sad to hear you faced an issue. Let’s figure it out.

@joe_datrin seems like Spring wasn’t able to construct a Camunda Operate Client. Without details I can propose to disable an Operate client like here. But in that case you will be missing inbound connectors, since - as @jwulf mentioned - inbound connectors are built on top of Operate API. You can find an example of minimal required properties/env variables here. If it doesn’t help, please provide more details on your setup: how do you run Camunda platform (SaaS, Docker, Helm, bare metal)? how do you run Connectors? Details on you networking, etc.

@Praveen_Kumar_Reddy it seems like the problem is here:

2023-07-17T06:43:03.788Z  WARN 1 --- [           main] .c.r.c.o.DefaultOutboundConnectorFactory : No outbound connectors discovered

While there might be several reasons for this, the most common from my experience is missing an SPI file or not correct function name set in it, like this one from the example.

Hope this helps!

3 Likes

Thanks for your reply @igpetrov
We have resolved the issue Camunda Custom Connector runtime - #4 by Praveen_Kumar_Reddy
we built an image with docker file and used compose file to run the connector
Now its working fine

2 Likes

Hi @Praveen_Kumar_Reddy could you please share that solution? I.e. pom.xml for the connector, Dockerfile and Docker compose that worked for you?

Hi @AndriyK ,
Here’s the Github Link to the solution discussed in this topic.

1 Like

Got it. Thanks!

1 Like