I was wondering if you solved this problem! I recently ran into the exact same issue and found a solution, in case you haven't fixed it yet...
(note: I'm building a website using Nuxt 3 and Supabase.)
My solution was to create a dedicated API route (or endpoint) and move the core logic (file uploads, inserting records to Supabase, etc.) there, and then send the request to that API route.
I also encountered a very weird bug where the session would be lost only on Android. To handle this, when sending the request to the API route, I explicitly added the access token like Authorization: Bearer {access_token}. Inside the API route, I then extracted the token from the header to re-initialize the Supabase client. This finally resolved the issue! Hope this helps you as well🤞