Operate fails to connect to Elasticsearch on http://camunda-elasticsearch:9200

I am trying Camunda 8 components to install on local machine using helm. I have updated the actions/setup performed in detailed at https://medium.com/@pramod.rajane/camunda-8-self-managed-on-localhost-using-helm-2d4371f62571

However, in short, I am trying to install operate, zeebe, zeebe gateway and Elasticsearch components of which except operate, all components are up.

When I checked operate pod logs, I see it failing to connect with Elasticsearch instance on http://camunda-elasticsearch:9200 with connection refuse exception.

I’m not getting any clue what is missing to execute more?

FYI : elastic search component is up and tested index listing by pod exe -it command

Below is my operate pod log

C:\Users\Pramod>kubectl logs -f camunda-operate-6f66f75599-hqjjp
Operate is a tool in Camunda 8 stack to provide visibility into all your processes and resolve any incident from a centralized platform. More information can be found on https://camunda.com/platform/operate/

License
The licensing information for Operate available at: https://docs.camunda.io/docs/reference/licenses/

Login with the credentials:
  User:     demo
  Password: demo

   ___   _   __  __ _   _ _  _ ___   _      ___  ___ ___ ___    _ _____ ___
  / __| /_\ |  \/  | | | | \| |   \ /_\    / _ \| _ \ __| _ \  /_\_   _| __|
 | (__ / _ \| |\/| | |_| | .` | |) / _ \  | (_) |  _/ _||   / / _ \| | | _|
  \___/_/ \_\_|  |_|\___/|_|\_|___/_/ \_\  \___/|_| |___|_|_\/_/ \_\_| |___|

                                                           8.7.21


[2025-12-22 11:11:23.395] [main] INFO
        io.camunda.application.StandaloneOperate - Starting StandaloneOperate v8.7.21 using Java 21.0.9 with PID 8 (/usr/local/operate/lib/camunda-zeebe-8.7.21.jar started by camunda in /usr/local/operate)
[2025-12-22 11:11:23.412] [main] INFO
        io.camunda.application.StandaloneOperate - The following 3 profiles are active: "operate", "standalone", "auth"
[2025-12-22 11:11:38.866] [main] WARN
        org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'io.camunda.operate.webapp.security.CustomMethodSecurityExpressionHandler' of type [io.camunda.operate.webapp.security.CustomMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [metricsConfiguration]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE.
[2025-12-22 11:11:38.878] [main] WARN
        org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'io.camunda.operate.webapp.security.MethodSecurityConfig' of type [io.camunda.operate.webapp.security.MethodSecurityConfig$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [metricsConfiguration]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE.
[2025-12-22 11:11:40.782] [main] INFO
        org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
[2025-12-22 11:11:43.304] [main] INFO
        org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 19164 ms
[2025-12-22 11:11:46.621] [netty-messaging-event-epoll-server-0] INFO
        io.atomix.cluster.messaging.impl.NettyMessagingService - TCP server listening for connections on 10.244.2.77:26502
[2025-12-22 11:11:47.515] [netty-messaging-event-epoll-server-0] INFO
        io.atomix.cluster.messaging.impl.NettyMessagingService - Started messaging service bound to [10.244.2.77:26502], advertising 10.244.2.77:26502, and using plaintext
[2025-12-22 11:11:48.271] [netty-unicast-event-nio-client-0] INFO
        io.atomix.cluster.messaging.impl.NettyUnicastService - Started plaintext unicast service bound to 0.0.0.0:26502, advertising 10.244.2.77:26502
[2025-12-22 11:11:48.294] [atomix-cluster-0] INFO
        io.atomix.cluster.discovery.BootstrapDiscoveryProvider - Local node Node{id=camunda-operate-6f66f75599-hqjjp, address=10.244.2.77:26502} joined the bootstrap service
[2025-12-22 11:11:48.478] [atomix-cluster-0] INFO
        io.atomix.cluster.protocol.swim - Started
[2025-12-22 11:11:48.485] [atomix-cluster-0] INFO
        io.atomix.cluster.impl.DefaultClusterMembershipService - Started cluster membership service for member Member{id=camunda-operate-6f66f75599-hqjjp, address=10.244.2.77:26502, properties={}}
[2025-12-22 11:11:48.487] [atomix-cluster-0] INFO
        io.atomix.cluster.messaging.impl.DefaultClusterCommunicationService - Started
[2025-12-22 11:11:48.570] [atomix-cluster-0] INFO
        io.atomix.cluster.messaging.impl.DefaultClusterEventService - Started
[2025-12-22 11:11:49.702] [main] WARN
        io.camunda.search.connect.es.ElasticsearchConnector - Username and/or password for are empty. Basic authentication for elasticsearch is not used.
[2025-12-22 11:11:54.105] [main] INFO
        io.camunda.operate.connect.OperateDateTimeFormatter - rfc3339ApiDateFormat is set to false, operate API will format datetimes in the existing format
[2025-12-22 11:11:55.287] [main] WARN
        io.camunda.service.license.CamundaLicense - No license detected when one is expected. Please provide a license through the CAMUNDA_LICENSE_KEY environment variable.
[2025-12-22 11:11:55.713] [main] WARN
        io.camunda.operate.connect.ElasticsearchConnector - Username and/or password for are empty. Basic authentication for elasticsearch is not used.
[2025-12-22 11:11:59.478] [main] WARN
        io.camunda.operate.connect.ElasticsearchConnector - Elasticsearch cluster is not accessible
[2025-12-22 11:12:01.003] [main] INFO
        io.camunda.operate.schema.SchemaStartup - SchemaStartup started.
[2025-12-22 11:12:01.004] [main] INFO
        io.camunda.operate.schema.SchemaStartup - SchemaStartup: validate index versions.
[2025-12-22 11:12:06.171] [main] INFO
        io.camunda.operate.schema.SchemaStartup - SchemaStartup: validate index mappings.
[2025-12-22 11:12:09.880] [main] INFO
        io.camunda.operate.schema.IndexSchemaValidator - Index name: variable. Field deletion is requested, will be ignored. Fields: [IndexMappingProperty{name='city', typeDefinition={type=text, fields={keyword={ignore_above=256, type=keyword}}}}, IndexMappingProperty{name='surname', typeDefinition={type=text, fields={keyword={ignore_above=256, type=keyword}}}}]
[2025-12-22 11:12:10.767] [main] INFO
        io.camunda.operate.schema.SchemaStartup - SchemaStartup: schema won't be created, it either already exist, or schema creation is disabled in configuration.
[2025-12-22 11:12:11.386] [main] INFO
        io.camunda.operate.schema.SchemaStartup - SchemaStartup: migrate schema.
[2025-12-22 11:12:11.702] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 1.1.0-0_variable_script.json
[2025-12-22 11:12:13.575] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 1.2.0-0_list-view_script.json
[2025-12-22 11:12:13.971] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 1.2.0-1_incident_script.json
[2025-12-22 11:12:13.982] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 1.2.0-2_user_script.json
[2025-12-22 11:12:13.988] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 1.2.0-3_user_script.json
[2025-12-22 11:12:13.991] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 1.2.0-4_user_script.json
[2025-12-22 11:12:14.078] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 1.2.0-5_user_delete-fields_script.json
[2025-12-22 11:12:14.085] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 1.3.0-0_incident_pending.json
[2025-12-22 11:12:14.088] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.1.0-0_list-view_pendingIncident.json
[2025-12-22 11:12:14.090] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.1.0-1_list-remove_fields.json
[2025-12-22 11:12:14.167] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.2.0-0_add_sequence_import.json
[2025-12-22 11:12:14.169] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.2.0-1_add_incident_bpmnProcessId.json
[2025-12-22 11:12:14.187] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-0_import-position_add_post-importer.json
[2025-12-22 11:12:14.189] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-10_sequence-flow_tenantId.json
[2025-12-22 11:12:14.192] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-11_variable_tenantId.json
[2025-12-22 11:12:14.267] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-12_metric_tenantId.json
[2025-12-22 11:12:14.270] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-1_post-importer-queue.json
[2025-12-22 11:12:14.284] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-2_incident_delete-fields.json
[2025-12-22 11:12:14.286] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-3_decision-requirements_tenantId.json
[2025-12-22 11:12:14.289] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-4_decision_tenantId.json
[2025-12-22 11:12:14.291] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-5_process_tenantId.json
[2025-12-22 11:12:14.293] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-6_decision-instance_tenantId.json
[2025-12-22 11:12:14.368] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-7_event_tenantId.json
[2025-12-22 11:12:14.371] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-8_flownode-instance_tenantId.json
[2025-12-22 11:12:14.375] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.0-9_list-view_tenantId.json
[2025-12-22 11:12:14.387] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.1-0_incident_delete-fields.json
[2025-12-22 11:12:14.390] [main] INFO
        io.camunda.operate.schema.migration.elasticsearch.ElasticsearchStepsRepository - Read step 8.3.1-1_incident_tenantId.json
[2025-12-22 11:12:23.067] [migration_1] INFO
        io.camunda.operate.schema.migration.Migrator - Check if index decision needs to migrate.
[2025-12-22 11:12:23.067] [migration_2] INFO
        io.camunda.operate.schema.migration.Migrator - Check if index decision-requirements needs to migrate.
[2025-12-22 11:12:31.086] [migration_2] INFO
        io.camunda.operate.schema.migration.Migrator - No migration needed for post-importer-queue, no previous indices found and no data initializer.
[2025-12-22 11:12:31.678] [migration_5] INFO
        io.camunda.operate.schema.migration.Migrator - No migration needed for user-task, no previous indices found and no data initializer.
[2025-12-22 11:12:31.775] [migration_3] INFO
        io.camunda.operate.schema.migration.Migrator - No migration needed for operation, no previous indices found and no data initializer.
[2025-12-22 11:12:32.471] [migration_4] INFO
        io.camunda.operate.schema.migration.Migrator - No migration needed for sequence-flow, no previous indices found and no data initializer.
[2025-12-22 11:12:32.681] [migration_1] INFO
        io.camunda.operate.schema.migration.Migrator - No migration needed for variable, no previous indices found and no data initializer.
[2025-12-22 11:12:32.769] [main] INFO
        io.camunda.operate.schema.SchemaStartup - SchemaStartup finished.
[2025-12-22 11:12:34.088] [main] INFO
        io.camunda.operate.WebappModuleConfiguration - Starting module: webapp
[2025-12-22 11:12:37.885] [main] INFO
        io.camunda.operate.management.ModelMetricProvider - Register BPMN/DMN model metrics.
[2025-12-22 11:12:39.878] [main] WARN
        io.camunda.operate.connect.ElasticsearchConnector - Username and/or password for are empty. Basic authentication for elasticsearch is not used.
[2025-12-22 11:12:51.285] [main] WARN
        io.camunda.operate.util.RetryOperation - Retry Operation Connect to Elasticsearch cluster [elasticsearch] at http://camunda-elasticsearch:9200 failed: java.util.concurrent.ExecutionException: java.net.ConnectException: Connection refused
org.elasticsearch.ElasticsearchException: java.util.concurrent.ExecutionException: java.net.ConnectException: Connection refused
        at org.elasticsearch.client.RestHighLevelClient.performClientRequest(RestHighLevelClient.java:2695) ~[elasticsearch-rest-high-level-client-7.17.29.jar:8.13.4]
        at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:2171) ~[elasticsearch-rest-high-level-client-7.17.29.jar:8.13.4]
        at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:2137) ~[elasticsearch-rest-high-level-client-7.17.29.jar:8.13.4]
        at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:2105) ~[elasticsearch-rest-high-level-client-7.17.29.jar:8.13.4]

Hi @pramod_Rajane,

Thanks for sharing the detailed logs and your Medium article! The “Connection refused” error from Operate to http://camunda-elasticsearch:9200 indicates a networking issue where the HTTP request never reaches the Elasticsearch service.

Let’s troubleshoot this systematically:

1. Verify Elasticsearch Service and Pods

First, check if Elasticsearch is actually running and accessible:

# Check ES pods
kubectl get pods | grep elasticsearch

# Check ES services  
kubectl get svc | grep elasticsearch

# Verify ES health (if accessible)
kubectl exec -it <elasticsearch-pod-name> -- curl -X GET "localhost:9200/_cluster/health?pretty"

2. Confirm Service Name and Port

The error shows Operate trying to connect to http://camunda-elasticsearch:9200. Verify that:

  • A service named camunda-elasticsearch exists
  • It’s listening on port 9200/TCP

If the service name or port differs, you’ll need to adjust your Helm values to match.

3. Test Connectivity from Operate Pod

Test the connection directly from the Operate pod:

kubectl exec -it camunda-operate-6f66f75599-hqjjp -- curl -v http://camunda-elasticsearch:9200

If this also fails with “connection refused”, the issue is at the Kubernetes networking/service level, not with Operate’s configuration.

4. Check Your Helm Configuration

Based on your setup, please share:

  • Your values.yaml file (with any secrets redacted)
  • Output of kubectl get svc | grep elasticsearch

This will help identify if you’re using:

  • Internal Elasticsearch (deployed with the chart)
  • External Elasticsearch (requires different configuration)

5. Common Configuration Issues

If you’re using external Elasticsearch, ensure your values.yaml includes:

global:
  elasticsearch:
    enabled: true
    external: true
    url:
      protocol: http
      host: <your-es-host>
      port: 9200
elasticsearch:
  enabled: false

If you’re using internal Elasticsearch (ECK), verify the Elasticsearch custom resource is healthy:

kubectl get elasticsearch

Next Steps

Could you please share:

  1. Output of kubectl get svc | grep elasticsearch
  2. Output of kubectl get pods | grep elasticsearch
  3. Your Helm values.yaml (redacted)

This will help pinpoint whether it’s a service discovery issue, configuration mismatch, or Elasticsearch availability problem.

References: