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

  1. In SQL Editor, grant only what's needed, e.g.:
grant select, insert, update, delete on table public.reports to authenticated;
  1. Make sure RLS is enabled and policies exist for each operation.
  2. 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

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.

Request a fix