Supabase Plugin - Integrate Supabase into your Bubble app

@ZeroqodeSupport UPSERT doesn’t seem to be working on updates.

payload:

{
    "id": "6616d870-d5c4-47e7-9963-ebe1b16a1964",
    "injury_id": "115eebe0-261f-4a6b-a2f6-fba88c2a0aaa",
    "task": "This is an upsert",
    "details": "This is an upsert",
    "assigned_to": "80295838-ea75-4fa7-84e3-035e0661224a",
    "due_date": "Jun 13, 2025 12:02 am"
}

Response:


I did some testing locally with claude code and found this
"
The UPSERT action works for inserts but fails silently for updates. Looking at the requests, it’s
missing the required Supabase UPSERT parameters.

Current request:
POST /rest/v1/table?select=*

Should be:
POST /rest/v1/table?on_conflict=id&select=*
Prefer: resolution=merge-duplicates
[{…}] // array format

The plugin needs both:

  1. on_conflict=id parameter
  2. Prefer: resolution=merge-duplicates header (currently defaults to ignore-duplicates)
    "

Hope that helps to fix upsert.

Hi @bkerryk ,

Thank you so much for sharing this detailed information! :folded_hands:

We really appreciate the insight you’ve provided. To help us replicate this on our side and work on a fix, could you kindly share more details on the exact action or workflow that is causing this issue? It would be helpful to know where the problem specifically arises so we can pinpoint the issue.

Looking forward to your response, and we’ll be happy to assist further!

Best regards,
Support Team
Browse all Zeroqode Plugins for Bubble
Banner_Last3

@ZeroqodeSupport was this an AI response?..

There is only one place where there is an Upsert action.

Upsert is a database action on your database element.

Upsert will insert if there is no id and update if there is an id.

The Insert portion of the functionality works, the update doesn’t work as per my original post (please read).

I think it’s a simple bug that I believe I have found the solution for you.


When does it happen:
Use UPSERT action to UPDATE a row.

Hi @ZeroqodeSupport-

I ran into a problem inserting a JSON payload. The error message I got is:

The schema must be one of the following: public, graphql_public

Not quite sure why this is the case. This is my setup (also have called the API via API connector):

Bubble


Supabase


I can help :smiley:

It’s an easy fix, you need to add your “profiles” schema to the exposed schema in the project settings.

Just like I have added “lookups” you need to add profile.
Project settings > Data API > Exposed schema

ty- this helped!

could you help me with one more thing? I now got

the permission denied to the schema

but my rls should allow all authenticated users to insert based on their user_id

Follow-up: Even when i disabled RLS, i still get the same permission error

Oh yes I think it’s becasue there are permsision settings in the schema itself that needs to be handled. I had to use AI to help me with the SQL to get that soprted as it’s not a supabase gui thing.

BTW, if you don’t need it to be in a new schema I would try keep as much as possible in the public schema, it’s much simpler that way.

It’s pretty easy to get an AI to move that table to public again.

I believe it’s this issue (LINK), but the troubleshoot solution didn’t work for me.

Hi @bkerryk ,

Thanks for providing the details and your investigation on this!

We’ve forwarded all the information to our dev team for further investigation. They’ll take a closer look at the UPSERT action and ensure that the correct parameters are applied for updates. We’ll keep you updated as soon as we have more insights or a resolution.

We appreciate your patience and input on this!

Best,
Support Team
Browse all Zeroqode Plugins for Bubble
Banner_Last3

1 Like

@ZeroqodeSupport since yesterday I start to have this problem with Generate JWT action.

It is more than 12 hours my users can’t access my platform and I don’t know how to fix. I’m talking with Bubble support because I think it’s a problem on their side (it all started from one moment to the next, without any change), but they’re not helping me much. Do you guys know anything about that? If yes, please tell me, it’s very urgent. Thanks.

@ZeroqodeSupport have you guys had a chance to look into this? I have a lot of work right now that requires upsert rather than separate calls. Is there a eta on when you can look at this?

Hi- Quick question; I was able to fix all the permission issue and send a JSON payload to Supabse. However, when it entered Supabase, all the field values are NULL. Curious what I did wrong?


Update: I tried the payload function (vs. json payload) and the payload is working but json one doesn’t work. From what i can debug, i can’t seem to send through a payload via json payload, but when i use the payload function, it could send it through

on the supabase end, it would register the entry but the fields where json payload box is sending would just all be NULL value

Hi @bkerryk

Thank you for your patience!

We can confirm that our dev team is already actively working on the issue with the UPSERT functionality. Unfortunately, we don’t have a specific ETA at the moment, but we’ll keep you updated as soon as we have more information or a resolution.

We truly appreciate your understanding and will make sure to prioritize this.

Best regards,
Support Team
Browse all Zeroqode Plugins for Bubble
Banner_Last3