I used supabase s3 to upload my egress recording, ...
# ask-ai
l
I used supabase s3 to upload my egress recording, I can confirm my credentials of supabase are correct, but I still get this:
t
Thanks for reaching out, James. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
The 403 signature mismatch error when uploading egress recordings to Supabase S3 is most commonly caused by incorrect URL formatting during request signing. For S3-compatible services like Supabase, you must set force_path_style to true in your S3 configuration. This ensures the bucket name is included in the path rather than as a subdomain, which is required for Supabase and many other non-AWS providers. To resolve this: • Set
force_path_style: true
in your S3Upload configuration. • Verify your endpoint matches the S3-compatible endpoint format provided by Supabase. • Double-check your access key, secret, region, and bucket name are correct and that your credentials have write permissions to the bucket. Example configuration:
Copy code
const fileOutput = new EncodedFileOutput({
  filepath: `recording-${Date.now()}.mp4`,
  s3: new S3Upload({
    endpoint: '[your-supabase-s3-endpoint]',
    accessKey: '[your-access-key]',
    secret: '[your-secret-key]',
    region: '[your-region]',
    bucket: '[your-bucket-name]',
    force_path_style: true
  })
});
After making these changes, try the upload again. If the error persists, confirm your credentials and permissions, and ensure the endpoint URL is correct. Sources: Egress output types | LiveKit Docs | Egress & Recording | livekit/livekit_composite | DeepWiki
l
I really check all of the credentials and urls endpoints, they are all correct. and this is set to be force_path_style: true. is it because that we can not upload egress recording up to supabase s3, or what is the so called compatible format? it this true: We might need to accept that LiveKit’s S3 client isn’t 100% compatible with Supabase, despite both sides saying it should work. In that case, we have options: 1. Use AWS S3 for recordings only (unfortunate but reliable) 2. Record locally then transfer to Supabase via webhook 3. Try different LiveKit recording method (track recording vs room composite) But first, let’s test with the .env file - that’s the one thing we haven’t tried yet! 🤞?
t
I don't have the answer you're looking for. You could also try asking your question: • in one of the other Slack channels or • to https://deepwiki.com/livekit/livekit_composite which is trained on all LiveKit source code If you find the answer, please post it here to help others!