Supabase · api · fg-0207
Supabase update returns no error but changes nothing because the table has no SELECT policy
update() resolves with error null and status 204 while the row is unchanged
Verified 2026-10-15 · Confirmed by 0 builders · Trust 50/100
Cause
Postgres must be able to see a row before it can update it, so UPDATE under RLS also needs a matching SELECT policy. Rows hidden from SELECT are skipped silently.
Fix
Add a SELECT policy covering the same rows as the UPDATE policy, and chain .select() in tests so a zero-row update is visible.
Apply
create policy "select own" on public.profiles for select to authenticated using ((select auth.uid()) = id); create policy "update own" on public.profiles for update to authenticated using ((select auth.uid()) = id) with check ((select auth.uid()) = id);
Affects: All Supabase projects with RLS enabled; any client library
Sources
Have your agent know this before it fails
claude mcp add --transport http footgun https://getfootgun.com/api/mcp