Supabase error PGRST203 (Ambiguous Function Overload) explained: what it means, why it happens, and how to fix it — with copy-paste code examples.
Rename one of the overloaded functions to disambiguate. If that does not apply, use distinct argument names across overloads — the full checklist is below.
Error code: PGRST203
Official name: Ambiguous Function Overload
Service: Supabase
Caused by requesting overloaded functions with the same argument names but different types, or by using a POST verb to request overloaded functions with a JSON or JSONB type unnamed parameter.
CREATE OR REPLACE FUNCTION public.handle_event(payload JSONB)
RETURNS void AS $$
BEGIN
-- ...
END;
$$ LANGUAGE plpgsql;
-- call with a named argument from the client:
-- supabase.rpc('handle_event', { payload: {...} })
Named arguments keep RPC calls unambiguous even when overloads exist.
Pass arguments as a named object so overloads can be distinguished.
const { data, error } = await supabase.rpc('my_func', {
input_id: 42, // named, typed parameter
})
if (error?.code === 'PGRST203') {
console.error('function overload is ambiguous - rename or retype arguments')
}
Most often this happens when two SQL functions with the same name and argument names but different argument types, or when rPC call via POST with an unnamed JSON/JSONB parameter.
Rename one of the overloaded functions to disambiguate.
This page documents fixes for: supabase-js.
Recommendations are editorial — DB Error Reference takes no payment or affiliate fees for tool listings.
This page is based on the official Supabase documentation linked below and adds practical troubleshooting guidance on top.