Skip to content

Troubleshoot PERMISSION_DENIED Missing IAM permission: bigtable.tables.mutateRows

Sanju Thomas edited this page Nov 24, 2022 · 4 revisions
Suppressed: com.google.api.gax.rpc.AsyncTaskException: Asynchronous task failed
	at com.google.api.gax.rpc.ApiExceptions.callAndTranslateApiException(ApiExceptions.java:57)
	at com.google.cloud.bigtable.data.v2.BigtableDataClient.bulkMutateRows(BigtableDataClient.java:921)
	at com.sanjuthomas.gcp.bigtable.writer.BigtableWriter.execute(BigtableWriter.java:79)
	at com.sanjuthomas.gcp.bigtable.writer.BigtableWriter.flush(BigtableWriter.java:61)
	at com.sanjuthomas.gcp.bigtable.sink.BigtableSinkTask.lambda$put$0(BigtableSinkTask.java:56)
	at java.lang.Iterable.forEach(Iterable.java:75)
	at com.sanjuthomas.gcp.bigtable.sink.BigtableSinkTask.put(BigtableSinkTask.java:52)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:537)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:315)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:218)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:186)
	at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:170)
	at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:214)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	... 3 more

Caused by: com.google.api.gax.rpc.PermissionDeniedException: io.grpc.StatusRuntimeException: PERMISSION_DENIED: Access denied. Missing IAM permission: bigtable.tables.mutateRows. at com.google.api.gax.rpc.ApiExceptionFactory.createException(ApiExceptionFactory.java:55) at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:72) at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:60) at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:82) ... 25 more Caused by: io.grpc.StatusRuntimeException: PERMISSION_DENIED: Access denied. Missing IAM permission: bigtable.tables.mutateRows. at io.grpc.Status.asRuntimeException(Status.java:533) ... 24 more

**Make sure that the service account that you are using to connect to Bigtable got "Bigtable User" Role. **

Also, this error message is thrown when the project name is used instead of the project id. (a bug in the library)