Short answer
Find the failing request in the network tab and read the details field. Check that each filter reads column=operator.value, wrap values that contain commas or parentheses in double quotes, and close every bracket in or() and and(). With supabase-js, use .eq(), .in() and .or() instead of building the URL yourself.
Rather not fix it yourself? App Fix Ticket starts with a fixed-price diagnosis, then a fixed price for the fix before any fix work.
Why PostgREST can’t parse the query, and the fix
01
The filter has no operator
“You can filter result rows by adding conditions on columns.” GitHub, Tables and Views: Horizontal Filtering
PostgREST filters are written column=operator.value, so ?age=13 fails where ?age=eq.13 works. The supabase-js filter methods add the operator for you.
const { data, error } = await supabase .from('people') .select('id, name') .eq('age', 13);02
A value contains a comma or parenthesis
Inside or() and in(), commas separate the items, so a value like Smith, John splits in two. Wrap such values in double quotes.
.or('name.eq."Smith, John",name.eq.Doe')03
Brackets in or() don’t balance
Every or( and and( needs its closing bracket, and nested groups need their own. Build the string in one place and log it before the request goes out.
04
The select or order string is malformed
“Parsing error in the query string parameter.” Supabase docs, PostgREST error codes (PGRST100)
Also check: a stray space, quote or symbol in select, order or a JSON path can cause the same 400. Compare the string with the PostgREST syntax piece by piece.
Checked against the vendor’s docs on : Supabase docs: PostgREST error codes; PostgREST docs: Tables and Views (filtering).
Rather hand it over?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
- from $450App Fix TicketOne reproducible bug in an existing mobile or web app, diagnosed and fixed.See scope and start
- from $450AI-Built App RescueA Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.See scope and start
“Very responsive, attentive to fixing bugs, and completed the project as needed! Thank you!”
Related: Supabase PGRST116 single row · Supabase PGRST204 column not found · Supabase PGRST200 relationship not found · Supabase operator does not exist: uuid = text