Short answer
List the functions with that name, drop the version you no longer use by its full signature, and reload the schema cache if the error stays. If you need both, give them different names or different argument names.
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 the API can’t pick a function, and the fix
01
A changed function kept its old version
“It is not possible to change the name or argument types of a function this way (if you tried, you would actually be creating a new, distinct function).” PostgreSQL docs, CREATE FUNCTION
Changing an argument from text to uuid with CREATE OR REPLACE leaves the old function in place. List both, then drop the one you don’t want. The drop fails if a view, policy or trigger still depends on it.
select oid::regprocedure from pg_proc where proname = 'get_orders' and pronamespace = 'public'::regnamespace; drop function public.get_orders(text); notify pgrst, 'reload schema';02
Two versions share argument names
“Overloaded functions with the same argument names but different types are not supported.” PostgREST docs, Functions (overloaded functions)
The API calls functions by argument name, so get_orders(customer_id text) and get_orders(customer_id uuid) look the same to it.
03
A JSON parameter has no name
“or by using a POST verb to request overloaded functions with a JSON or JSONB type unnamed parameter.” Supabase docs, PostgREST error codes (PGRST203)
A function with one unnamed json or jsonb parameter, next to another version with the same name, can also trigger it on POST. Name the parameter.
04
You need both versions
“The solution is to rename the function or add/modify the names of the arguments.” Supabase docs, PostgREST error codes (PGRST203)
Supabase recommends a unique name per function, such as get_orders_by_email. If you must overload, make the argument names differ, then update the rpc() calls in your app.
Checked against the vendor’s docs on : Supabase docs: PostgREST error codes; PostgREST docs: Functions; PostgreSQL docs: CREATE FUNCTION.
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 could not find the function · Supabase PGRST204 · Supabase migration failed (db push) · Supabase PGRST200