App Proxy returns 404 — Shopify never makes the request to my proxy URL

What I’ve tried:

  1. Cloudflare Tunnel pointing to my Next.js app — 404
  2. Cloudflare Worker (publicly accessible, no tunnel) — 404
  3. Hitting the proxy URL directly (curl https://my-worker.workers.dev/) returns a valid JSON response, so the endpoint is definitely up and reachable
  4. Running wrangler tail on the worker while visiting the store URL — zero requests come through. Shopify is not forwarding the request at all.
  5. Uninstalled and reinstalled the app on the dev store
  6. Ran shopify app dev to sync the config

My config (shopify.app.development.toml):

client_id = "d6d08…"
name = "My App (Dev)"
application_url = "https://my-worker.workers.dev"
embedded = true

[access_scopes]
scopes = "read_customers,write_app_proxy,write_customers"
use_legacy_install_flow = true

[app_proxy]
url = "https://my-worker.workers.dev"
subpath = "endpoint"
prefix = “apps”

What shopify app dev shows:

app_proxy │ Using URL: https://my-worker.workers.dev
app_proxy │ Any changes to prefix and subpath will only apply to new installs

Environment:

  • Development store
  • Custom app (no Remix, no Shopify app template)
  • Shopify CLI latest
  • API version 2026-01

The 404 is coming from Shopify itself, not my backend. It seems like the app proxy is either not being registered on the store or Shopify is not routing /apps/endpoint to my proxy URL at all.

Has anyone else experienced this? Is there a step I’m missing to activate the app proxy on an existing install? Does the app need to be reinstalled for proxy config changes to take effect?

Did you double check the proxy config in Admin? If you previously registered it under a different route, or if there was another app w/ a conflicting path, the proxy may be under a different subpath.

Yep it matches exactly the same, I’ve only used the one path since adding it.

Its a fresh/new development store, no other apps installed.