Supabase PGRST205: the table in the request URI was not found
The Data API returns PGRST205? Supabase says that HTTP 404 means the table specified in the URI was not found.
Reviewed October 22, 2026
What it means in plain English
Supabase's Data API error list says PGRST205 is HTTP 404: caused when the table specified in the URI is not found. It is listed under schema cache errors, which Supabase describes as the API being unable to identify relationships or objects within the query requests.
Data API errors come back as JSON with code, details, hint, and message. The sample object on that page is a different code, 42703, whose message is that a column does not exist. Supabase says the codes in the table are returned in the response body, not recorded in the logs.
PGRST204 is HTTP 400: the column specified in the columns query parameter is not found. PGRST202 is HTTP 404: a stale function signature, or the function may not exist. 42P01 is a database-level undefined table, also HTTP 404. A singular .single() result is PGRST116. See Supabase PGRST116: .single() did not get exactly one row.
Likely causes
- The table name in the request URI is not a table the API can identify. That is the PGRST205 description.
- The request is asking for a column or a function. Those are
PGRST204andPGRST202. - Postgres itself reports an undefined table. That code is
42P01, notPGRST205.
How to fix it, step by step
- Read
codefrom the JSON body the client received. Stay on this page when it isPGRST205. - The table specified in that request URI was not found. Compare the table in the URI with the table the query should name.
- If the code is
PGRST204, the missing name is a column in the columns query parameter. If it isPGRST202, it is a function signature, or the function may not exist. If it is42P01, Postgres reported an undefined table. - Supabase says these API codes are not in the logs. To find the failing request, use the logs query it shows for the gateway:
edge_logs, status code 300 or higher, and a path matching/rest/v1/.sb_error_codeon that row is empty when the request reached PostgREST and failed there. Then readcodefrom the client response. - A 406 from
.single()isPGRST116, which is a different row in the same table.
How to check it worked
- The same request no longer returns
codePGRST205. - The HTTP status for that call is no longer the 404 Supabase lists for this code.
Sources
Related fixes
More Supabase RLS and permissions fixes
Keep going on your own.
The guides stay free. A deep leak report is $15. Fix packs are $24, or $49 for all three. There is no done-for-you repair.