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 PGRST204 and PGRST202.
  • Postgres itself reports an undefined table. That code is 42P01, not PGRST205.

How to fix it, step by step

  1. Read code from the JSON body the client received. Stay on this page when it is PGRST205.
  2. The table specified in that request URI was not found. Compare the table in the URI with the table the query should name.
  3. If the code is PGRST204, the missing name is a column in the columns query parameter. If it is PGRST202, it is a function signature, or the function may not exist. If it is 42P01, Postgres reported an undefined table.
  4. 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_code on that row is empty when the request reached PostgREST and failed there. Then read code from the client response.
  5. A 406 from .single() is PGRST116, which is a different row in the same table.

How to check it worked

  • The same request no longer returns code PGRST205.
  • The HTTP status for that call is no longer the 404 Supabase lists for this code.

Sources

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.

See products