Camunda 8 Self-Managed: the worker does not receive any job

I deployed Camunda 8.8 self-managed via Helm Chart on a K3s cluster on my server. I tried both the full cluster and orchestration-only versions. In both cases, I can authenticate with the Python worker I created, but I don’t receive any jobs.
I’m currently testing the orchestration-only version. I created a very simple BPMN model just to test communication with the worker.

The Python worker runs within a K3s cluster pod in the same namespace.

The pods are running, and there are no errors in the logs.

kube-system     coredns-64fd4b4794-hflwn                  1/1     Running     0          3d21h
kube-system     helm-install-traefik-crd-fzp56            0/1     Completed   0          3d21h
kube-system     helm-install-traefik-gnq9n                0/1     Completed   1          3d21h
kube-system     local-path-provisioner-774c6665dc-x7hfv   1/1     Running     0          3d21h
kube-system     metrics-server-7bfffcd44-vgltj            1/1     Running     0          3d21h
kube-system     svclb-traefik-3a4b9cd8-lpjtq              2/2     Running     0          3d21h
kube-system     traefik-c98fdf6fb-6cjmm                   1/1     Running     0          3d21h
orchestration   camunda-elasticsearch-master-0            1/1     Running     0          3d21h
orchestration   camunda-zeebe-0                           1/1     Running     0          21h
orchestration   python-worker-6b68955f7b-swpf6            1/1     Running     0          21h

    ZEEBE_ADDRESS = os.environ.get("ZEEBE_ADDRESS", "camunda-zeebe-gateway:26500")

    interceptor = AsyncBasicAuthInterceptor(USERNAME, PASSWORD)

    channel = grpc.aio.insecure_channel(
        ZEEBE_ADDRESS, 
        interceptors=[interceptor]
    )
 
    client = ZeebeClient(channel)
    try:
        status = await client.topology()
        print(f"Connected! Topology: {status}")
    except Exception as e:
        print(f"Error: {e}")
        await channel.close()
        return

    worker = ZeebeWorker(channel, name="python-worker-sum")


    @worker.task(task_type="test")
    async def test_job():
        print("Job 'test' received!")
        return {"result": "OK from worker"}


    @worker.task(task_type="sum-numbers")
    async def sum_numbers(**kwargs):
        print(f"JOB Received! Data: {kwargs}")
        a = kwargs.get("a")
        b = kwargs.get("b")
        
        if a is None or b is None:
            print(f"Missing: a={a}, b={b}")
            return {"error": "missing variables"}
        result = int(a) + int(b)
        print(f"🔢 Result: {result}")
        return {"result": result}

    print(f"Worker listening on {ZEEBE_ADDRESS}...")
    
    try:
        await worker.work()
    finally:
        await channel.close()


The worker is able to authenticate and retrieve the topology but does not receive any tasks.

The worker logs are:

Connected! Topology: TopologyResponse(brokers=[TopologyResponse.BrokerInfo(node_id=0, host='camunda-zeebe-0.camunda-zeebe', port=26501, partitions=[TopologyResponse.BrokerInfo.Partition(partition_id=1, role=<PartitionBrokerRole.LEADER: 0>, health=<PartitionBrokerHealth.HEALTHY: 0>)], version='8.8.11')], cluster_size=1, partitions_count=1, replication_factor=1, gateway_version='8.8.11')
Worker listening on camunda-zeebe-gateway:26500...

The task_type name matches the serviceTask ID.

I tried the same worker code and the same model in a docker-based Camunda 8 Self-Managed deployment and the worker receives the jobs correctly.

This looks like a networking connectivity issue between your Python worker and the Zeebe Gateway in your K3s cluster. I found the following relevant resources:

Does this help? If not, can anyone from the community jump in? :waving_hand:


:light_bulb: Hints: Use the Ask AI feature in Camunda’s documentation to chat with AI and get fast help. Report bugs and features in Camuda’s GitHub issue tracker. Trust the process. :robot: