Skip to content
Discussion options

You must be logged in to vote

The important distinction here is that sb_secret_... is an opaque API secret, not a JWT. The legacy service_role key is a JWT. That matches the symptom: the Auth Admin path is trying to verify a JWT and reports kid <nil>, while an opaque key does not carry JWT header fields such as kid.

Supabase documents both the new signing-key model and the two API-key types here:

As a temporary backend-only workaround, if the legacy key is still available, create the admin client with the legacy service-role JWT rather than the sb_secret_... key:

const supabase = createClient(
  Deno.env.get('…

Replies: 1 comment 2 replies

Comment options

You must be logged in to vote
2 replies
@reliasam
Comment options

@farfromexact
Comment options

Answer selected by reliasam
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants