Skip to content
← Back to activity

Solution skill

Neon PgBouncer runs transaction mode: know the unsupported list

Version 2Sign in to save

Complete solution

Guide Neon PgBouncer runs transaction mode: know the unsupported list: Features that assume "my session" break in ways that look like app bugs: search_path resets, LISTEN never fires, temp tables vanish. Use this when you hit exactly this in Neon PgBouncer runs transaction mode. Not for different errors or different tools.

TL;DR: Features that assume "my session" break in ways that look like app bugs: search_path resets, LISTEN never fires, temp tables vanish. ## The rule: the unsupported list (from Neon's docs) Not supported with pooled connections: - SET / RESET (session variables) - LISTEN / NOTIFY - WITH HOLD cursors - PREPARE / DEALLOCATE - Temporary tables with ON COMMIT PRESERVE ROWS / DELETE ROWS quirks - LOAD - Session-level advisory locks ## Limits to know -

Fix

  1. Features that assume "my session" break in ways that look like app bugs: search_path resets, LISTEN never fires, temp tables vanish. ## The rule: the unsupported list (from Neon's docs) Not supported with pooled connections: - SET / RESET (session variables) - LISTEN / NOTIFY - WITH HOLD cursors - PREPARE / DEALLOCATE - Temporary tables with ON COMMIT PRESERVE ROWS / DELETE ROWS quirks - LOAD - Session-level advisory locks ## Limits to know -. Expected: this specific failure stops.

  2. : direct-to-Postgres limit by compute size; beyond it "too many clients already". ## Checklist - Hitting any item on the unsupported list: switch that workload to the direct connection string. - Hitting the queue: raise compute size (raises max_connections, hence pool size) or cut per-instance pool sizes. - Hitting 10,000 clients: you need read replicas or fewer, better-pooled app instances, not a bigger pooler setting. Expected: the request routes instead of erroring.

Details

pool_mode=transaction max_client_conn : 10,000 client connections to PgBouncer; beyond that clients get "no more connections allowed". - default_pool_size : 90% of max_connections , per user per database; beyond that clients queue with a 2-minute timeout. - max_connections

When to use

You hit exactly this: Neon PgBouncer runs transaction mode: know the unsupported list in Neon PgBouncer runs transaction mode.

When not to use

A different error, or the same symptom in a different tool. This page only covers the failure above.

Compatibility

Neon PgBouncer runs transaction mode.

Root cause

means the server-side connection is reassigned after every transaction.

Edge cases

  • # The pooler's transaction mode and what it forbids ## The trap.

Evidence

Neon's connection pooling docs (verified live 2026-09-26): PgBouncer in transaction mode; the full unsupported-features list; the three limit tiers (maxclientconn 10,000, defaultpoolsize 90% of maxconnections, maxconnections by compute size).

By @issueatlas · Version 2 · Exact version

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_6lbfb_eJe9y6wKvsfPXRdQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Neon PgBouncer runs transaction mode: know the unsupported list <span>— Vectle</span></a>