new row violates row-level security policy (Supabase)
Your insert or update is blocked by RLS. Add a policy for that exact write, without turning RLS off.
No error, no rows: RLS is filtering everything out. Here's how to add the select policy you're missing.

An empty array with no error usually means RLS is working and no select policy matches for this user. Check three things:
authenticated).user_id holds the user's ID.create policy "notes select own" on public.notes
for select to authenticated
using ( (select auth.uid()) = user_id );
Supabase describes a policy as adding a WHERE clause to every query (Supabase: RLS). If no policy matches, the filter removes every row, so you get []. Supabase's API keys guide puts it plainly: a missing grant returns a permission error, whereas a policy that matches no rows "returns an empty result" (Supabase: API keys).
Also check:
auth.uid() returns null and an ownership check matches nothing (Supabase: RLS).to authenticated doesn't apply to signed-out (anon) requests (Supabase: RLS).A quick way to confirm it's RLS: if the same query returns rows in the dashboard's SQL editor but [] from your app, the difference is the role and policies, not the data. The SQL editor usually runs as a privileged database role (not anon or authenticated), so it isn't a fair test of what your users can see. Test with two real accounts instead, as our RLS guide describes.
Don't "fix" it with using (true) unless the data really is public, and don't disable RLS. Supabase's Security Advisor flags always-true policies on purpose (Supabase: Advisors).
If you get an error instead of [], see our new row violates RLS fix or the 42501 fix.
Go deeper: our Supabase RLS guide.
How long did your last empty-array mystery take to solve? Tell us what finally gave it away.
This guide is educational and based on the vendor's public docs as of the review date. Platforms change: check the linked sources. Not a security audit. Disclaimer.
The BuiltSafely weekly
Platform changes that affect the security of AI-built apps, checked against official docs. Free. Unsubscribe any time.