Supavisor pooler auth_query never establishes a backend session on GitHub Actions runners (EAUTHQUERY / ECIRCUITBREAKER)
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
调研方向
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.
由索引模型根据 Issue 内容生成。
描述
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.
- 主要语言
- TypeScript
- 星标
- 2.4k
- 派生
- 537
- 平均合并
- 20 小时 12 分钟
- 30 天内合并 PR
- 407
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
supabase/cli 的其他 Issue
-
stack: the gateway sets no X-Forwarded-For or X-Real-IP, so Edge Functions cannot see the client IP未关闭🐛 Bug supabase/cli
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
config push: changing auth.oauth_server.authorization_url_path fails with 400 (enabled and path must be sent together)可能已有人在做 @itz-puneet 于 5 天前认领。 未关闭🐛 Bug supabase/cli
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
db schema declarative sync: no way to fail (non-zero exit) when the generated migration is destructive可能重新可做 关联的 PR 已关闭且未合并。 未关闭✨ Feature supabase/cli
难度 2/5 1-3 小时 新手友好度 84/100
维护者通常 1 天内回复
-
📘 Docs supabase/cli
难度 1/5 1 小时以内 新手友好度 88/100
维护者通常 1 天内回复
-
🐛 Bug supabase/cli
难度 2/5 1-3 小时 新手友好度 88/100
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
bug
难度 1/5 1 小时以内 新手友好度 76/100
维护者通常 1 天内回复
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
难度 1/5 1 小时以内 新手友好度 76/100
lingdojo/kana-dojo#32964 · 1 条评论 · 5 个 reaction ·
维护者通常 1 天内回复
-
Documentation status: needs triage
难度 2/5 1-3 小时 新手友好度 72/100
mastra-ai/mastra#28194 · 1 条评论 ·
维护者通常 1 天内回复
-
priority-low refactor-3
难度 2/5 1-3 小时 新手友好度 84/100
维护者通常 3 天内回复