Skip to content

Bug: enable_signup=false disables entire email/phone provider instead of just signups #40582

@EpochBoy

Description

@EpochBoy

Correction

I need to correct my initial understanding after feedback:

The Actual Behavior

These variables control the entire authentication provider, not just signup:

  • ENABLE_EMAIL_SIGNUPGOTRUE_EXTERNAL_EMAIL_ENABLED
  • ENABLE_PHONE_SIGNUPGOTRUE_EXTERNAL_PHONE_ENABLED
  • DISABLE_SIGNUPGOTRUE_DISABLE_SIGNUP (global flag)

Invite-Only Configuration

Docker:

DISABLE_SIGNUP=true
ENABLE_EMAIL_SIGNUP=true
ENABLE_PHONE_SIGNUP=true

CLI:

[auth]
enable_signup = false

[auth.email]
enable_signup = true

[auth.sms]
enable_signup = true

Proposed change

Not a bug - documentation clarity issue. Fixed in #40575 and supabase/cli#4469 by adding detailed comments explaining provider vs signup control,

Original Report:

Bug report

  • I confirm this is a bug with Supabase, not with my own application.
  • I confirm I have searched the Docs, GitHub Discussions, and Discord.

Describe the bug

Setting [auth.email].enable_signup = false disables the entire email provider instead of just preventing signups, breaking invite-only authentication. Same issue affects [auth.sms].enable_signup.

Error: 422 {"msg":"email_provider_disabled"}

To Reproduce

CLI:

[auth.email]
enable_signup = false

Docker:

ENABLE_EMAIL_SIGNUP=false

Attempt to send a magic link or authenticate an invited user → provider disabled error.

Expected behavior

Should only disable signups while allowing invited users to authenticate via email/password/OTP.

System information

  • Affects:
    • Supabase CLI v1.0.0+ (since d347621, Feb 2022)
    • Docker Compose (since 0e036d4, Sept 2021)
  • Observed with: Supabase CLI latest, Docker Compose with GoTrue v2.182.1

Root cause

Config incorrectly maps enable_signupGOTRUE_EXTERNAL_EMAIL_ENABLED (provider on/off) instead of GOTRUE_DISABLE_SIGNUP (signup permission).

Bug locations:

  • CLI: internal/start/start.go lines 487, 502
  • Docker: docker/docker-compose.yml lines 132, 152

Proposed fixes:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions