Ci sono superuser_reserved_connections
slot di connessione (3 per impostazione predefinita ) che sono riservati ai superutenti in modo che possano connettersi anche in una situazione in cui tutti gli slot di connessione sono occupati.
Quindi hai effettivamente solo 297 slot disponibili.
Riduci il numero massimo di connessioni del tuo pool di connessioni o aumenta max_connections
in PostgreSQL.
A proposito, 300 è troppo alto. Dovresti utilizzare un'impostazione molto più bassa con un pool di connessioni (a meno che tu non abbia centinaia di core nella tua macchina del database).