Camunda 8.7 exporter state UNRECOGNIZED

I’m trying to install Camunda 8.7 in Kubernetes using helm version 12.5.0
We want to use our external elasticsearch so I’ve added to our values file according to the documentation

global:
  elasticsearch:
    enabled: true
    external: true
    auth:
      username: elastic
      password: pass
    url:
      protocol: http
      host: elastic.example.com
      port: 443

elasticsearch:
  enabled: false

(using our own host etc ofc)
But when the zeebe pod starts up, in the logs, I first get

  • echo ‘No exporters available.’

then after the applikation starts I get a stacktrace with
io.camunda.zeebe.broker.system - Aborting startup process due to exception during step Cluster Topology Manager
java.lang.IllegalStateException: Unknown exporter state UNRECOGNIZED

Is there something else I need to add to the values file?

Hi there! :wave:

I can see you’re encountering an issue with Camunda 8.7 and external Elasticsearch configuration. The “Unknown exporter state UNRECOGNIZED” error combined with “No exporters available” suggests there’s a configuration issue with the exporter setup.

Classification: Problem :wrench:

Based on your configuration and the error messages, here are the most likely causes and solutions:

1. Password Propagation Issue

There’s a known issue where passwords aren’t always correctly propagated from Helm values to the Zeebe exporter configuration. Try using a Kubernetes secret instead:

global:
  elasticsearch:
    enabled: true
    external: true
    auth:
      username: elastic
      existingSecret: elasticsearch-credentials
      existingSecretKey: password
    url:
      protocol: http
      host: elastic.example.com
      port: 443

elasticsearch:
  enabled: false

Create the secret:

kubectl create secret generic elasticsearch-credentials --from-literal=password=your-actual-password

2. Protocol Configuration

I notice you’re using protocol: http with port: 443. Port 443 is typically used for HTTPS. Make sure your protocol matches your actual Elasticsearch setup:

  • If using HTTPS: protocol: https with port: 443
  • If using HTTP: protocol: http with port: 80 or 9200

3. Verify Generated Configuration

Check if the exporter configuration is properly generated in the Zeebe ConfigMap:

kubectl get configmap <zeebe-configmap-name> -o yaml

Look for the exporters section - it should contain the Elasticsearch exporter configuration with your credentials.

4. TLS Configuration

If your Elasticsearch uses TLS, you may need to add TLS configuration:

global:
  elasticsearch:
    enabled: true
    external: true
    tls:
      enabled: true
      existingSecret: <your-tls-secret>  # if using custom certificates
    auth:
      username: elastic
      existingSecret: elasticsearch-credentials
      existingSecretKey: password
    url:
      protocol: https
      host: elastic.example.com
      port: 443

Next Steps:

  1. Try the Kubernetes secret approach first
  2. Verify your protocol/port combination matches your Elasticsearch setup
  3. Check the generated Zeebe ConfigMap for the exporter configuration
  4. Review Zeebe logs for any additional error details

Could you please share:

  • The exact Elasticsearch setup you’re using (HTTP vs HTTPS, port configuration)
  • The generated Zeebe ConfigMap content (you can redact sensitive information)
  • Any additional error logs from the Zeebe pod

This will help us pinpoint the exact cause of the issue.

References: