Shopify App Proxy Not Forwarding POST Requests to Backend

Issue Summary

My Shopify app proxy configuration works perfectly for GET requests but completely blocks POST requests from reaching my backend server. POST requests return 302 redirects and
never arrive at the backend.

Configuration Details

shopify.app.toml:
[access_scopes]
scopes = “read_products,write_products,read_customers,write_customers,read_orders,write_orders,write_app_proxy”

[app_proxy]
url = “https://my-backend.example.com
prefix = “apps”
subpath = “api”

Expected URL mapping:

What Works :white_check_mark:

GET requests work perfectly:
curl ‘the_proxy_urlt_hat_i_cant_show_here_because_of_message_limitation’

Returns: 400 with proper Laravel validation response

Backend logs show: Request received and processed

What Doesn’t Work :cross_mark:

All POST requests fail:

Simple POST request

curl -X POST ‘the_proxy_urlt_hat_i_cant_show_here_because_of_message_limitation‘
-H ‘Content-Type: application/json’
-d ‘{“name”:“Test”,“status”:“draft”}’

Returns: 302 redirect, backend receives NOTHING

Tested variations (all fail with 302)

  • POST without cookies
  • POST without Origin header
  • POST with browser headers
  • POST with URL ending in dot (.)
  • Different payload sizes

Backend Investigation

Direct backend testing works:
curl -X POST ‘https://my-backend.example.com/projects’
-H ‘Content-Type: application/json’
-d ‘{“name”:“Test”,“status”:“draft”}’

Returns: 400 with Laravel validation (expected)

Backend logs analysis

  • :white_check_mark: GET requests from app proxy appear in nginx logs
  • :cross_mark: POST requests from app proxy NEVER appear in logs
  • :white_check_mark: Direct POST requests to backend work fine

Environment Details

  • Shopify CLI: Latest (2025)
  • Backend: Laravel 12 on Docker/nginx
  • App Type: Public app with embedded admin
  • Testing: Development store

Questions

  1. Is this a known limitation? Does Shopify app proxy support POST requests ? It worked 1 month ago
  2. Configuration issue? Is there a specific configuration needed in shopify.app.toml to enable POST request forwarding?

Attempted Solutions

  • Verified write_app_proxy scope is granted
  • Tested various curl configurations
  • Confirmed backend accepts requests directly
  • Checked nginx logs extensively

The GET/POST inconsistency suggests either a configuration issue or a fundamental limitation of Shopify app proxy for POST requests. Any insights would be greatly appreciated!

My bad, I trusted claude-code to look correctly in the nginx logs but it wasn’t checking the access-ssl.log…

So, I leave this here for anyone who have the same issue: when your backend throw a 500, shopify return the 500 but not the body, instead it gives the shop’s html.

Thanks for sharing your solution @Adrien_C, really appreciated. :clinking_beer_mugs: