Hey fellow devs!
I'm hitting a wall with an authentication sync issue between Clerk and Supabase in my React/TS app. Could use some expert eyes on this problem:
The Issue:
When users sign up or log in, I'm getting this error:
Authentication error: Supabase connection failed: invalid input syntax for type uuid: "user_..."
Sometimes followed by:
Error creating/updating user: new row violates row-level security policy for table "users"
My Setup:
- React/TS app using Clerk for auth and Supabase (DB/Storage)
- Deployed a Supabase Edge Function (sync-clerk-user) that receives Clerk webhooks when users are created/updated
- Configured Clerk webhook endpoints to point to this function
- Function is designed to use the Supabase service role key to upsert Clerk userIDs into the public.users table
What I've Done:
- Successfully deployed the Edge Function using supabase functions deploy sync-clerk-user --no-verify-jwt
- Set up the webhook URL in Clerk's dashboard
- Confirmed the function deployment shows success in terminal output
- Started the local dev server and tested signup/login
What's Puzzling Me:
Despite having the webhook setup apparently correct, the app still throws the UUID error - suggesting that either:
- The webhook isn't being received/processed correctly
- The function has a runtime error I can't see
- My client code might be trying to access Supabase resources before the sync completes
Questions:
- How can I effectively debug if the Clerk webhook is actually firing and reaching my function?
- Where should I look in Supabase/Clerk to find detailed logs of the webhook attempts?
- Any common gotchas with Clerk-Supabase user mapping that I might be missing?
If anyone has experience with this Clerk+Supabase pattern or debugging webhook issues, I'd really appreciate the help!