Having issue when deploying custom connector with Camunda 8 and SasS

Hi, I have a running trial cluster, and I am trying to deploy the custom-built connector following documentation:

and

but I get the following exception:

2025-03-22T19:57:55.686Z INFO 1 — [ scheduling-1] .c.c.r.i.e.InboundExecutableRegistryImpl : Inbound connector status report - 0 executables active
2025-03-22T19:57:55.687Z INFO 1 — [ main] i.c.c.r.app.ConnectorRuntimeApplication : Started ConnectorRuntimeApplication in 2.202 seconds (process running for 2.393)
2025-03-22T19:57:56.379Z ERROR 1 — [ scheduling-1] i.c.common.auth.SaaSAuthentication : Token retrieval failed from: https://login.cloud.camunda.io/oauth/token
Response code: 401
Audience: operate.camunda.io

2025-03-22T19:57:56.382Z ERROR 1 — [ scheduling-1] i.c.common.auth.SaaSAuthentication : Authenticating for OPERATE failed due to io.camunda.common.exception.SdkException: Failed to deserialize json ‘’ to class ‘class io.camunda.common.auth.TokenResponse’
2025-03-22T19:57:56.382Z ERROR 1 — [ scheduling-1] i.c.c.r.i.i.ProcessDefinitionImporter : Failed to import process elements

java.lang.RuntimeException: Unable to authenticate
at io.camunda.common.auth.SaaSAuthentication.retrieveToken(SaaSAuthentication.java:55)
at io.camunda.common.auth.SaaSAuthentication.generateToken(SaaSAuthentication.java:73)
at io.camunda.common.auth.JwtAuthentication.getTokenHeader(JwtAuthentication.java:28)
at io.camunda.common.http.DefaultHttpClient.retrieveToken(DefaultHttpClient.java:206)
at io.camunda.common.http.DefaultHttpClient.post(DefaultHttpClient.java:147)
at io.camunda.operate.CamundaOperateClient.searchProcessDefinitionResults(CamundaOperateClient.java:46)
at io.camunda.connector.runtime.inbound.importer.ProcessDefinitionSearch.query(ProcessDefinitionSearch.java:72)
at io.camunda.connector.runtime.inbound.importer.ProcessDefinitionImporter.scheduleImport(ProcessDefinitionImporter.java:55)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.scheduling.support.ScheduledMethodRunnable.runInternal(ScheduledMethodRunnable.java:130)
at org.springframework.scheduling.support.ScheduledMethodRunnable.lambda$run$2(ScheduledMethodRunnable.java:124)
at io.micrometer.observation.Observation.observe(Observation.java:499)
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:124)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: io.camunda.common.exception.SdkException: Failed to deserialize json ‘’ to class ‘class io.camunda.common.auth.TokenResponse’
at io.camunda.common.json.SdkObjectMapper.fromJson(SdkObjectMapper.java:42)
at io.camunda.common.auth.SaaSAuthentication.lambda$retrieveToken$0(SaaSAuthentication.java:36)
at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:247)
at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:188)
at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:162)
at io.camunda.common.auth.SaaSAuthentication.retrieveToken(SaaSAuthentication.java:32)
… 20 common frames omitted
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
at [Source: REDACTED (StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION disabled); line: 1]
at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)
at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4996)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4898)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3848)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3816)
at io.camunda.common.json.SdkObjectMapper.fromJson(SdkObjectMapper.java:39)
… 25 common frames omitted

Is this maybe related to the fact I run the trial cluster?

Thank you

Best Regards

Hi there! This usually happens when your API client is misconfigured - either not enough permissions, or something else is wrong with the config. Whether your cluster is a trial one shouldn’t make any difference.

If possible, please share your application properties/yaml file with the configuration of your local connector runtime, and please confirm that you created an API client in Console with permissions for both Zeebe and Operate.

Please also let me know which Camunda version you are using.

Hi @chillleader
Thank you for your help. It seems scope for Operate was missing when creating a new API key.

I am not getting anymore:

Token retrieval failed from: https://login.cloud.camunda.io/oauth/token.

Could you please update screenshot

to include scope for Operate, too?

Best Regards