Skip to content

Branching config parser rejects [local_smtp] that supabase init (v2.108) emits — preview branches + prod deploys fail at config step #5801

Description

@arobison

Describe the bug

supabase init on CLI v2.108.0 generates a [local_smtp] section — the CLI's own renameDeprecatedSMTP logic (in apps/cli-go/pkg/config/config.go) treats [inbucket] as deprecated in favor of [local_smtp]. But the hosted Branching config parser (used by the GitHub integration when creating preview branches, and when deploying to the production branch on merge) rejects local_smtp:

failed to parse config: decoding failed due to the following error(s):

'config.config' has invalid keys: local_smtp

So the standalone CLI emits a config section its own hosted branching backend can't decode — the two are on different config-schema versions. The config step fails before migrations run, so the preview branch ends in MIGRATIONS_FAILED with an empty database (no supabase_migrations.schema_migrations, 0 public tables). On a merge to the production branch, the same parse failure blocks the production deploy.

To Reproduce

  1. supabase init with CLI 2.108.0 → the generated config.toml contains [local_smtp].
  2. Enable Branching + the GitHub integration on a Pro project; open a PR.
  3. The Supabase preview branch is created but ends in MIGRATIONS_FAILED. The PR's Supabase check comment shows a Branch Error: 'config.config' has invalid keys: local_smtp, with Configurations / Migrations / Seeding all skipped.
  4. Query the branch DB → 0 public tables, no migration history.

Expected behavior

The hosted branching config parser should accept the same config.toml the current CLI generates — i.e. accept [local_smtp]. Failing that, the branching backend should apply the same inbucketlocal_smtp rename shim the CLI already ships, and/or the error should name the cause ("CLI is ahead of the branching config schema; use [inbucket]") instead of a bare invalid keys.

Workaround

Rename [local_smtp][inbucket] in config.toml. The hosted branching backend accepts [inbucket], and the current CLI still parses it locally (with a deprecation warning), so it satisfies both.

Environment

  • CLI: 2.108.0
  • Branching: enabled via the GitHub integration, Pro plan
  • Postgres 17

Related

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions