On Wed, 2026-04-08 at 10:51 +0530, KK CHN wrote: > List, I am using pgbouncer(PgBouncer 1.23.1 RHEL 9.4) along with Postgres16(RHEL 9.4) > for connection pooling. > > Running a nodejs application which is throwing some errors related to query timeout > which the development team suspect after pgbouncer deployment this behaviour appears, > but not sure > > The error which is thrown from the nodejs logs as follows.. > > [image showing an error "Query read timeout"] > > Is this due to pgbouncer config issues or nodejs pool config issues ? > > for reference here the pgbouncer config params and node js params at present. > > pgbouncer.ini > > [...] > [pgbouncer] > pool_mode = transaction > default_pool_size = 50 > min_pool_size = 30 > reserve_pool_size = 10 > reserve_pool_timeout = 5 > max_db_connections = 130 > max_user_connections = 180 > server_lifetime = 3600 > server_idle_timeout = 600 > [...]
The only way I can imagine that pgBouncer is leading to timeouts on the client side is if client sessions are waiting, because all connections are in use.
You can run SHOW POOLS in the pgBouncer console to see if there are any "cl_waiting". If that is the case, you should configure the Node.js pools smaller, so that no connection has to wait.
Configuring Node.js pools smaller ? I couldn't get the logic here why advised to reduce the pool size ?
Increasing pool size more than 10 adversely affects the connection establishment from Node.js application ? Since DB is having Pgbouncer infront and default_pool_size = 50 there , don't we have the freedom to increase node.js application pool size and it will help the query timeout ? or any hidden facts involved could you elaborate ..