Il existe des superuser_reserved_connections
slots de connexions (3 par défaut ) qui sont réservés aux super-utilisateurs afin qu'ils puissent se connecter même dans une situation où tous les slots de connexion sont occupés.
Vous n'avez donc effectivement que 297 emplacements disponibles.
Soit réduisez le nombre maximum de connexions de votre pool de connexions, soit augmentez max_connections
dans PostgreSQL.
Soit dit en passant, 300, c'est beaucoup trop élevé. Vous devez utiliser un paramètre beaucoup plus bas avec un pool de connexions (sauf si vous avez des centaines de cœurs dans votre machine de base de données).