Existem
superuser_reserved_connections
slots de conexões (3 por padrão ) que são reservados para superusuários para que eles possam se conectar mesmo em uma situação em que todos os slots de conexão sejam ocupados. Então você efetivamente tem apenas 297 slots disponíveis.
Reduza o número máximo de conexões do seu pool de conexões ou aumente
max_connections
no PostgreSQL. A propósito, 300 é muito alto. Você deve usar uma configuração muito mais baixa com um pool de conexões (a menos que tenha centenas de núcleos em sua máquina de banco de dados).