CRITICAL: `http_post()` changed in pg_http 1.6 — full regression. Production broken. No changelog.
CRITICAL: pg_http 1.6 has silently broken trigger-based webhooks
Hi team, I’ve spent hours debugging a critical regression introduced by the pg_http extension update to version 1.6, which occurred silently on my Supabase instance.
✅ What was working (pg_http 1.5):
I was using http_post() in a AFTER UPDATE trigger.
The returned request_id was then passed to http_response(request_id) to retrieve the response status, body, etc.
This pattern was stable and documented.
❌ What’s broken now (pg_http 1.6):
The new net.http_post(...) returns only a BIGINT, but the net.http_response(request_id) function is missing.
I cannot inspect the status code, response body or errors.
My triggers still execute, but there’s no way to verify if the external API actually responded successfully.
All documentation and examples still refer to the old behavior — no migration notes, no changelog, no backward compatibility.
This broke webhook workflows in production with no warning.
🎯 What I need:
1. A working replacement for http_response(request_id) in 1.6 (or instructions to enable it).
2. If http_response() was removed, please document how to access response content/status from net.http_post().
3. A rollback path or mitigation until full compatibility is restored.
This issue is urgent and causing major reliability problems in production.
6 Replies
Have you posted in the repository? Contacted support?
This a user helping user forum. I can’t look into this right now but if really broken could not resolve it either.
This a user helping user forum. I can’t look into this right now but if really broken could not resolve it either.
I don't follow. You are talking about
http
versions, but the function you refer to is net.http_post
, which is from another extension, pg_net
.There is no net.http_response function.
The http extension which is usually installed by default in extensions does have an http_response function.
But if you call net.http_post it will return just an id as pg_net is async and has no response yet.
AFAIK, neither extension has a
http_response
function. pg_net
(which is the async one) stores the responses in a table and you can query them from there. http
is synchronous and returns a http_response
type. pg_net
is developed by Supabase, and often installed when you enable certain settings. http
is not, but is available for installation and documented.Right. pg_http returns an http_response object. Did not dig deep enough.
