From f7e7f98d46fed9ae09f7322950115816b741e71b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Ign=C3=A1cio=20Fontoura=20Solla?= Date: Thu, 30 Jul 2026 06:40:20 -0300 Subject: [PATCH] =?UTF-8?q?fix:=20stage=20DB=20uses=20unpooled=20Neon=20en?= =?UTF-8?q?dpoint=20(pooler=20hangs=20the=20int=20suite=20=E2=80=94=20sess?= =?UTF-8?q?ion=20state/advisory=20locks)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/refresh-stage.mjs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/refresh-stage.mjs b/scripts/refresh-stage.mjs index b8192dd3..c8037a99 100644 --- a/scripts/refresh-stage.mjs +++ b/scripts/refresh-stage.mjs @@ -83,11 +83,14 @@ const created = await request('POST', `/projects/${PROJECT_ID}/branches`, { const stageBranch = created.branch log(`created stage branch ${stageBranch.id} from prod snapshot (${timestamp})`) -// 3. Resolve the new pooled connection string. +// 3. Resolve the new connection string. UNPOOLED on purpose: the int suite +// (and Payload's own advisory locks) need real session state, which the +// transaction-mode pooler does not guarantee — the suite hung and GitHub +// cancelled the run at the 1-hour mark on 2026-07-30 with the pooled URL. const { uri } = await request( 'GET', `/projects/${PROJECT_ID}/connection_uri?branch_id=${stageBranch.id}` + - `&database_name=${DATABASE_NAME}&role_name=${ROLE_NAME}&pooled=true`, + `&database_name=${DATABASE_NAME}&role_name=${ROLE_NAME}&pooled=false`, ) log(`new stage connection string: ${uri.replace(/:\/\/[^@]*@/, '://***@')}`)