`config push` sets `external_email_enabled = false` when `[auth.email] enable_signup = false`, disabling password sign-in for all users
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- postgresql, typescript
- Ambito
- authentication, cli
Direzione di ricerca
The bad mapping is the boolRow call at packages/config/src/project-config/registry-auth.ts:597, which ties [auth.email] enable_signup to external_email_enabled. Read the config schema parsing that rejects an enabled key under [auth.email], and the config push path that writes the auth config. Done means signup can be disabled without flipping external_email_enabled, with a test covering the config push mapping. The issue offers two fixes, so confirm the approach with a maintainer before writing code.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Running supabase config push against a remote project whose config.toml has [auth.email] enable_signup = false sets the project's external_email_enabled to false. Email/password sign-in then fails for every user with 422 email_provider_disabled, while the CLI reports the auth config as updated / up to date.
Version
Reproduced on CLI 2.109.1 (2026-07-17). The mapping is still on main at 753520f (2026-10-06): packages/config/src/project-config/registry-auth.ts:597, boolRow(["auth","email","enable_signup"], "external_email_enabled"). Latest release checked: v2.120.0.
Steps to reproduce
- A remote project with the email provider enabled; email/password sign-in works.
supabase/config.tomlcontains:
The intent is no public self-signup: accounts are created by admins through the Admin API.[auth] enable_signup = false [auth.email] enable_signup = falsesupabase config push --project-ref <ref>POST /auth/v1/token?grant_type=passwordwith valid credentials.
Expected
[auth.email] enable_signup = false disables email signup only. Existing users can still sign in, and external_email_enabled stays true.
Actual
external_email_enabled flips true -> false (read back from GET /v1/projects/{ref}/config/auth). Sign-in returns 422 email_provider_disabled for everyone. The CLI prints no warning.
No workaround in config.toml
Adding enabled = true under [auth.email] is rejected ('auth.email' has invalid keys: enabled), and that parse error also breaks supabase db push. So a project that wants signup disabled cannot use config push at all.
Recovery
curl -X PATCH https://api.supabase.com/v1/projects/<ref>/config/auth \
-H "Authorization: Bearer $SUPABASE_ACCESS_TOKEN" -H 'Content-Type: application/json' \
-d '{"external_email_enabled": true}'
Related
- supabase/supabase#40582 (open, no replies)
- supabase/cli#4469 (closed unmerged)
Suggested fix
Do not map [auth.email] enable_signup onto the provider toggle external_email_enabled, or accept [auth.email] enabled in the schema so the provider can be kept on explicitly.
- Lingua principale
- TypeScript
- Stelle
- 2.4k
- Fork
- 533
- Merge medio
- 1g 4h
- PR unite (30g)
- 346
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
-
db schema declarative sync: no way to fail (non-zero exit) when the generated migration is destructiveForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta✨ Feature supabase/cli
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
stack: the HTTP gateway closes idle keep-alive connections after 5 s, so a client whose event loop is blocked gets ECONNRESET (`fetch failed`) on its next requestForse già presa @7ttp l’ha presa 7 giorni fa. Aperta🐛 Bug supabase/cli
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
supabase/cli#6975 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
📘 Docs supabase/cli
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
supabase/cli#6974 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
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
-
config push sends [auth.sms] enable_confirmations un-negated as sms_autoconfirm, so hosted projects get the opposite of localForse già presa @7ttp l’ha presa 5 giorni fa. Aperta🐛 Bug supabase/cli
supabase/cli#6997 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di supabase/cli
Issue simili
-
awaiting-response bug needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
wildcard/caro#1562 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
supadata-ai/mcp#27 ·
-
content
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
cosimochellini/one-piece-zero-spoiler#516 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
capricorn86/happy-dom#2485 ·
I maintainer di solito rispondono entro 2 giorni
-
lane: fast
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
unicef/adt-studio#946 ·
I maintainer di solito rispondono entro 2 giorni