Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

config diff reports api.enabled = true after config push disables the Data API (pg_pgrst_no_exposed_schemas)

Open
#6,932 0 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@7ttp is already working on this.

Since Oct 1, 2026.

Assessment

This issue has not been assessed yet.

Description

🐛 Bug supabase/cli
Describe the bug

After supabase config push turns the Data API off ([api] enabled = false), supabase config diff still reports api.enabled as true on the remote. config diff --exit-code therefore never exits 0 for a project with the Data API disabled, and every later config push re-sends the same db_schema update.

The push itself works: PATCH /v1/projects/{ref}/postgrest with db_schema: "" is accepted, and GET /v1/projects/{ref}/postgrest then returns "db_schema": "". The effective config (GET /v2/projects/{ref}/config), which config diff reads, returns "db_schema": "pg_pgrst_no_exposed_schemas". That value is the platform's "Data API disabled" marker, per the troubleshooting guide "schema pg_pgrst_no_exposed_schemas does not exist".

The api.enabled row in packages/config/src/project-config/registry.ts (v2.117.0, unchanged in v2.119.0) maps it as:

configPath: ["api", "enabled"],
apiPath: apiDbSchemaPath,
transform: (value) => expectString(value, apiDbSchemaPath).length > 0,

So the marker reads as "enabled".

To reproduce
  1. config.toml with [api] enabled = false.
  2. supabase config push --project-ref <ref> --yes: reports api.enabled [update] local: false, remote: true and updates the API service.
  3. supabase config diff --project-ref <ref> --exit-code: still lists api.enabled (local false, remote true) and exits non-zero.
  4. Steps 2 and 3 repeat identically on every run.
Expected behavior

db_schema == "pg_pgrst_no_exposed_schemas" (as well as "") maps to api.enabled = false, so the diff is clean after a successful disable, and push does not re-send it.

Versions
  • Supabase CLI 2.117.0 (also checked the source of 2.119.0); hosted projects
Related, smaller

config push reports auth.sms.twilio.enabled as unencodable ("cannot turn the active provider off"). Hosted projects start with sms_provider: "twilio" even with phone sign-in off. PATCH /v1/projects/{ref}/config/auth {"sms_provider": null} returns 200 but the value stays "twilio", so a config with no SMS provider can never diff clean. Treating the provider as inactive while external_phone_enabled is false would resolve it.

Dominant language
TypeScript
Stars
2.4k
Forks
526
Avg merge
1d 2h
Merged PRs (30d)
323

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from supabase/cli

All issues in supabase/cli

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.