API created by namespace admin unable to start worker - getting permission denied

I created an API key when logged in to the cloud UI with the Developer role. I diligently followed the instructions here to create an API key and instantiate a WorkflowServiceStubs using the Java SDK code snippets.

When I start the worker locally on my laptop (I am assuming that Temporal cloud can invoke my local worker), I get permission denied. Error details is below:

{"timestamp":"2025-02-09T05:37:15.131Z","level":"WARN","thread":"Activity Poller taskQueue=\"default\", namespace=\"default\": 3","logger":"io.temporal.internal.worker.Poller","message":"Failure in poller thread Activity Poller taskQueue=\"default\", namespace=\"default\": 3","context":"default","exception":"io.grpc.StatusRuntimeException: PERMISSION_DENIED: Request unauthorized.\n\tat io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:271)\n\tat io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:252)\n\tat io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:165)\n\tat io.temporal.api.workflowservice.v1.WorkflowServiceGrpc$WorkflowServiceBlockingStub.pollActivityTaskQueue(WorkflowServiceGrpc.java:3801)\n\tat io.temporal.internal.worker.ActivityPollTask.poll(ActivityPollTask.java:100)\n\tat io.temporal.internal.worker.ActivityPollTask.poll(ActivityPollTask.java:40)\n\tat io.temporal.internal.worker.Poller$PollExecutionTask.run(Poller.java:298)\n\tat io.temporal.internal.worker.Poller$PollLoopTask.run(Poller.java:258)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:833)\n"}

Any suggestions?

Thanks in advance.