Supavisor pooler auth_query never establishes a backend session on GitHub Actions runners (EAUTHQUERY / ECIRCUITBREAKER)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start by reproducing supabase start on a fresh GitHub Actions ubuntu-latest runner, then connect through the printed Supavisor pooler string. Compare the pooled attempt with a direct PostgreSQL connection and monitor pg_stat_activity during retries. Done means the first pooled connection establishes successfully without EAUTHQUERY or ECIRCUITBREAKER.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Affected area
Auth
Supabase CLI version
2.117.0
Operating system
GitHub Actions ubuntu-latest runner (not reproduced locally — see Additional context for why)
Installation method
None
Command
supabase start
Actual output
FATAL: (EAUTHQUERY) user not found in the database
(under connection volume, same root cause surfaces as:)
FATAL: (ECIRCUITBREAKER) too many authentication failures, new connections are temporarily blocked
Expected behavior
Supavisor's auth_query connection should establish a backend session so pooled connections succeed immediately after supabase start, same as it already does on a local machine once its role-cache is warm.
Steps to reproduce
- On a fresh GitHub Actions ubuntu-latest runner (no prior cache), install supabase CLI 2.117.0 via supabase/[email protected]
- Run
supabase start - Immediately attempt a connection through the printed Supavisor/pooler connection string (not the direct port)
- Connection fails: FATAL: (EAUTHQUERY) user not found in the database — even though a direct (non-pooled) connection at the same moment confirms the role/password are correct
Crash report ID
No response
Docker and service versions
Additional context
Summary
On a fresh supabase start inside GitHub Actions (ubuntu-latest), the very first connection through the Supavisor pooler fails with FATAL: (EAUTHQUERY) user not found in the database, even though the role and password are confirmed correct at the Postgres level. Under connection volume the failure mode shifts to FATAL: (ECIRCUITBREAKER) too many authentication failures, new connections are temporarily blocked. Both are the same root cause: Supavisor's own auth_query connection never establishes a backend session at all in this environment — not a role/password/timing issue.
Environment
supabase/cliversion: 2.117.0- Postgres image bundled with that version: 17.6.1.167
- Runner: GitHub Actions,
ubuntu-latest - Invocation:
supabase start, then a pooled connection attempt via the Supavisor connection string immediately after
Evidence this is not a role/password/cache/timing issue
- Role and password confirmed correct throughout the failure window — a direct (non-pooled) Postgres connection, run in parallel with every failure, confirms the role exists with the expected password at every timestamp EAUTHQUERY fired.
pg_stat_activitypolled at 100ms resolution across a full ~135s retry window never once observed Supavisor's own connection establish, across four independent, timestamped EAUTHQUERY failures.- Not a warm-up/timing issue — six separate retry-interval tuning iterations, up to 135s total wait, were all insufficient. This isn't "give it more time," the pooler's auth_query connection simply never comes up in this environment.
- Not reproducible on a local machine once Supavisor's role-cache is warm — the same theoretical race exists on a brand-new local
supabase starttoo, but every local dev machine that has connected through the pooler even once already has a warm cache from that point forward, masking it. A fresh GitHub Actions runner never has a warm cache — every run hits it. - Under connection volume (a real test suite's fixtures), the identical root cause resurfaces as
ECIRCUITBREAKERrather thanEAUTHQUERY— consistent with the same underlying "auth_query backend never establishes," just a different Supavisor failure path once retries stack up.
Workaround in use (confirms root cause, not a fix)
Bypassing Supavisor entirely and connecting directly to Postgres on the direct/session-mode port, using the same role, produces identical results — 86 test files / 659 tests, all passing, byte-identical outcome to the pooled connection when it does work, RLS enforcement confirmed identical (verified this is not equivalent to using the migrator/superuser role, which would silently bypass RLS — deliberately used the same app_user/app_service role, not DIRECT_URL's privileged role). This confirms the issue is specifically in Supavisor's connection establishment on this runner class, not in the underlying database, role, or grants.
Ask
Has anyone else hit auth_query-never-establishes specifically on GitHub Actions runners with supabase start? Searched the existing issue tracker before filing — found no matching report. Happy to provide the CI run logs / pg_stat_activity polling data if useful for reproduction.
- Lingua principale
- TypeScript
- Stelle
- 2.4k
- Fork
- 526
- Merge medio
- 1g 2h
- PR unite (30g)
- 307
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di supabase/cli
-
Migration error caret is missing or misplaced when the statement contains multibyte charactersAperta🐛 Bug supabase/cli
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
🐛 Bug supabase/cli
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
I maintainer di solito rispondono entro 1 giorno
-
SQL statement splitter breaks E'...' strings that contain a backslash-escaped quoteForse già presa @7ttp l’ha presa 1 giorno fa. Aperta🐛 Bug supabase/cli
supabase/cli#6885 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
db push applies migrations when the confirmation answer is not yes or noForse già presa @7ttp l’ha presa 2 giorni fa. Aperta🐛 Bug supabase/cli
supabase/cli#6869 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
🐛 Bug supabase/cli
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di supabase/cli
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
lichess-org/api#678 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
PostHog/posthog.com#20628 ·
I maintainer di solito rispondono entro 1 giorno
-
bug status:Needs Triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
jupyterlab/jupyterlab#19964 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
agentscope-ai/QwenPaw#8064 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area: notebooks-jupyter bug theme: new notebook frontend
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
posit-dev/positron#16347 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno