Always 404 when proxying firestore (HTTP2)

I’ve been having a hard time trying to debug this issue. We’re trying to set up an proxy that will essentially serve up firebase inside our own domain to get around some customer content blocking.

I don’t have a ton of experience with H2 and am having a difficult time debugging.

The haproxy config is as simple as I can make it.

global
  log stdout format raw local0 debug
  log-send-hostname

defaults
  log global
  retries 3
  timeout client 30s
  timeout connect 10s
  timeout server 30s

  mode http
  option httplog
  option logasap
  

frontend fe
  bind :8443  ssl crt localhost.pem alpn h2,http/1.1
  default_backend firestore

backend firestore
  server fs1 firestore.googleapis.com:443 ssl verify none alpn h2,http/1.1
  

When using the proxy I get this:

➜  haproxy curl -k --http2 -X POST 'https://localhost:8443/google.firestore.v1.Firestore/Listen/channel?database=somedb'
127.0.0.1:55819 [16/Sep/2022:15:43:01.986] fe~ firestore/fs1 0/0/220/53/+273 404 +314 - - ---- 1/1/1/1/0 0/0 "POST https://localhost:8443/google.firestore.v1.Firestore/Listen/channel?database=somedb HTTP/2.0"
<!DOCTYPE html>
<html lang=en>
  <meta charset=utf-8>
  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
  <title>Error 404 (Not Found)!!1</title>
  <style>
    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
  </style>
  <a href=//www.google.com/><span id=logo aria-label=Google></span></a>
  <p><b>404.</b> <ins>That’s an error.</ins>
  <p>The requested URL <code>/google.firestore.v1.Firestore/Listen/channel</code> was not found on this server.  <ins>That’s all we know.</ins>

Going directly to the firestore url I get this:

➜  haproxy curl -k  --http2 -X POST 'https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?database=somedb'

Any help would be greatly appreciated!