permission denied for table (Supabase error 42501)
Supabase "permission denied for table"? The role lacks a GRANT on the table, which is checked before RLS. Add the grant, then a policy.
Reviewed October 14, 2026
What it means in plain English
Postgres checks two things: does this kind of user have permission to touch the table at all (a 'grant'), and then which rows (RLS). This error means the first check failed.
Likely causes
- The table was created without grants to
anon/authenticated(newer projects may not grant automatically). - Grants were revoked.
- Table in a schema not exposed to the API.
How to fix it, step by step
- In SQL Editor, grant only what's needed, e.g.:
grant select, insert, update, delete on table public.reports to authenticated;
- Make sure RLS is enabled and policies exist for each operation.
- Supabase advises checking grants before changing policies when a request that should be allowed fails.
How to check it worked
- The request now returns data (or an empty list if no policy matches; then see the RLS page).
Sources
Related fixes
Can't fix it? Get help.
If the steps didn't clear the error, send what the screen says. A person can take a look. This is a request for a paid fix, not an instant chat.