UNKNOWN: pq: remaining connection slots are reserved for non-replication superuser connections"

We are seeing

io.grpc.StatusRuntimeException: UNKNOWN: pq: remaining connection slots are reserved for non-replication superuser connections
	at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:271)
	at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:252)
	at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:165)
	at io.temporal.api.workflowservice.v1.WorkflowServiceGrpc$WorkflowServiceBlockingStub.pollWorkflowTaskQueue(WorkflowServiceGrpc.java:3752)
	at io.temporal.internal.worker.WorkflowPollTask.doPoll(WorkflowPollTask.java:140)
	at io.temporal.internal.worker.WorkflowPollTask.poll(WorkflowPollTask.java:122)
	at io.temporal.internal.worker.WorkflowPollTask.poll(WorkflowPollTask.java:43)
	at io.temporal.internal.worker.Poller$PollExecutionTask.run(Poller.java:298)
	at io.temporal.internal.worker.Poller$PollLoopTask.run(Poller.java:258)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

java 17
spring boot 3.1.0
temporal_version = ‘1.19.1’

One thing you can try is to increase maxConns and maxIdleConns via static config (docs here, config template here)
Both default to 20 if not specified.

Another thing to check maybe is your max connections on the db config side ( max_connections)