Confirmations
Describe the bug
supabase sso list fails to parse the Management API response and exits with:
failed to list sso providers: SchemaError(Missing key
at ["items"][0]["saml"]["id"])
The command never prints the provider list. The same project's providers are
returned as valid JSON by the underlying Management API endpoint
(GET /v1/projects/{ref}/config/auth/sso/providers), so the response is well-formed —
the CLI is rejecting it during deserialization because it treats items[].saml.id
as a required field.
Steps to reproduce
- Have a project with at least one existing SAML SSO provider.
- Run:
npx supabase@latest sso list --project-ref <ref>
- Observe the SchemaError above.
For comparison, the raw API returns fine:
curl -s https://api.supabase.com/v1/projects/<ref>/config/auth/sso/providers \
-H "Authorization: Bearer $SUPABASE_ACCESS_TOKEN" | jq .
Version bisection
- ✅ Works:
2.100.0, 2.101.0
- ❌ Broken:
2.102.0, 2.103.0, 2.104.0
The regression was introduced in 2.102.0. Possibly related to the SSO command /
API response decoding being ported to native TypeScript with a schema that requires
saml.id, which the list response does not always include.
Expected behavior
sso list parses the response and prints the providers, as it does on 2.101.0.
Sample response shape (redacted)
items[0] from the raw API looks like this — note saml.id is <present/absent — FILL IN>:
{
"items": [
{
"id": "<uuid>",
"saml": {
"...": "... (redacted — include whether an `id` key exists here)"
},
"domains": [ { "domain": "<redacted>" } ]
}
]
}
Workaround
Pin to the last working version: npx supabase@2.101.0 sso list --project-ref <ref>.
System information
- OS: macOS 26.5 (arm64)
- CLI: 2.102.0+ via
npx
- Node: v24.10.0
Confirmations
Describe the bug
supabase sso listfails to parse the Management API response and exits with:The command never prints the provider list. The same project's providers are
returned as valid JSON by the underlying Management API endpoint
(
GET /v1/projects/{ref}/config/auth/sso/providers), so the response is well-formed —the CLI is rejecting it during deserialization because it treats
items[].saml.idas a required field.
Steps to reproduce
npx supabase@latest sso list --project-ref <ref>For comparison, the raw API returns fine:
Version bisection
2.100.0,2.101.02.102.0,2.103.0,2.104.0The regression was introduced in 2.102.0. Possibly related to the SSO command /
API response decoding being ported to native TypeScript with a schema that requires
saml.id, which the list response does not always include.Expected behavior
sso listparses the response and prints the providers, as it does on 2.101.0.Sample response shape (redacted)
items[0]from the raw API looks like this — notesaml.idis <present/absent — FILL IN>:{ "items": [ { "id": "<uuid>", "saml": { "...": "... (redacted — include whether an `id` key exists here)" }, "domains": [ { "domain": "<redacted>" } ] } ] }Workaround
Pin to the last working version:
npx supabase@2.101.0 sso list --project-ref <ref>.System information
npx