Generated types not consistently reproducable
Describe the bug Since upgrading to Supbase CLI version 2.24.3 and upgrading my Supbase major_version from 15 -> 17 at the same time, my generated typescript types are flaky (the output file flips between one of two versions between successive generations).
To Reproduce Steps to reproduce the behavior:
- Init a supabase project locally with major_version 17 in config.toml and these npm package version:
├── [email protected]
├── [email protected]
├── @supabase/[email protected]
├── [email protected]
├── [email protected]
-
Run
npx supabase startand create any empty table at http://localhost:54323/project/default/editor then runnpx supabase db dump --data-only --linked -f ./supabase/seed.sql && npx supabase db diff -f "init" -
npx supbase db reset && npx supabase gen types typescript --local > supabase.ts -
Rerun the previous command several times and observe that this section of
supbase.tsvaries between the following values:
Variation A:
export type Database = {
graphql_public: {
Tables: {
[_ in never]: never
}
Views: {
[_ in never]: never
}
Functions: {
graphql: {
Args: {
operationName?: string
query?: string
variables?: Json
extensions?: Json
}
Returns: Json
}
}
Enums: {
[_ in never]: never
}
CompositeTypes: {
[_ in never]: never
}
}
...
and variation B:
export type Database = {
graphql_public: {
Tables: {
[_ in never]: never
}
Views: {
[_ in never]: never
}
Functions: {
graphql: {
Args: {
variables?: Json
extensions?: Json
operationName?: string
query?: string
}
Returns: Json
}
}
Enums: {
[_ in never]: never
}
CompositeTypes: {
[_ in never]: never
}
}
...
Where the diff looks like this:
+++ b/supabase.ts
@@ -17,10 +17,10 @@ export type Database = {
Functions: {
graphql: {
Args: {
- operationName?: string
- query?: string
variables?: Json
extensions?: Json
+ operationName?: string
+ query?: string
}
Returns: Json
}
Expected behavior The generated file, supabase.ts should be reproducible and exactly identical every time it's created (provided there are no changes to the database schema).
My use case is I run npx supbase db reset && npx supabase gen types typescript --local > supabase.ts in my CI and have it fail if there's a diff for supabase.ts as this indicates I forgot to regenerate this file and update it in in the git repo after adding a migration to my PR that changes schemas.
This process was working fine until I upgrade my dependencies today (listed above) and upgrade to major_version 17 (from 15) in supbase/config.toml at the same time.
Screenshots If applicable, add screenshots to help explain your problem.
System information
Rerun the failing command with --create-ticket flag.
(No command was failing so I couldn't produce this but I'm manually filling in):
-
Ticket ID:
-
Version of OS: MacOS Sequoia (15.5)
-
Version of CLI: v2.24.3
-
Version of Docker: 24.0.2, build cb74dfc
-
Versions of services:
SERVICE IMAGE | LOCAL | LINKED ------------------------|------------------------|------------ supabase/postgres | 17.4.1.038 | 17.4.1.037 supabase/gotrue | v2.174.0 | v2.174.0 postgrest/postgrest | v12.2.3 | v12.2.3 supabase/realtime | v2.36.7 | - supabase/storage-api | v1.23.0 | - supabase/edge-runtime | v1.67.4 | - supabase/studio | 2025.06.02-sha-8f2993d | - supabase/postgres-meta | v0.89.3 | - supabase/logflare | 1.12.0 | - supabase/supavisor | 2.5.1 | -
Additional context If applicable, add any other context about the problem here.
It seems that npx supbase db reset is critical before running npx supabase gen types typescript --local > supabase.ts to cause the reproducibility issues. I can run the second command many times back to back without a file diff, but only when combined with npx supbase db reset does it make the output file alter between the two variations I described.
Note I also don't use graphql in my project. If there was an option to skip outputting graphql that'd also be an okay workaround for now for me.