Edge Function Not Receiving Custom Headers from Clerk Webhook (svix-id, svix-signature, etc.)

I'm encountering a persistent issue where my Edge Function is returning a 401 error (Missing authorization header) when invoked by a Clerk webhook. The webhook includes the svix-id, svix-signature, and svix-timestamp headers, but these headers are not visible in the function when it runs. To fix this, I created the following file: supabase/functions/sync_user_from_clerk/.supabase/functions.toml With contents: [function_headers] allowed_headers = ["svix-id", "svix-timestamp", "svix-signature"] I have redeployed the function using: supabase functions deploy sync_user_from_clerk However, the headers still appear stripped in the function, and the webhook verification fails. Can anyone please help confirm whether: The functions.toml file is being picked up correctly? There's any known issue with custom headers from Clerk (Svix) webhooks being blocked? Happy to provide project ref and webhook logs if needed.
No description
1 Reply
Red
Red3w ago
I am not entirely certain if this is the answer, but I believe handle CORS for OPTIONS requests. It resolved the issue I was encountering when attempting to pass Headers through my Flutter web client while invoking the function.

Did you find this page helpful?