Webhooks stopped working after switching to Managed Install — help needed!

Hello,

To resolve some issues in my app, I recently switched from a custom OAuth flow to Shopify’s Managed Install (using a .toml file).

However, after switching, webhook events are no longer being sent to my server.

Before switching to the managed install flow, all webhooks were properly received on my server… :cry:

I’ve attached a snippet of the webhook section from my .toml file below,
and I’ve also included a screenshot showing that the webhooks are correctly registered in the Partner Dashboard after deployment.

[[webhooks.subscriptions]]
topics = [
  "orders/updated",
  "orders/paid",
  "orders/cancelled",
  "products/create",
  "products/update",
  "products/delete",
  "app/uninstalled",
  "app_purchases_one_time/update",
  "app_subscriptions/approaching_capped_amount",
  "app_subscriptions/update"
]
uri = "https://myserver.com/shopify/webhook"

Interestingly, when I check the webhook logs in the Partner Dashboard, I see 200 status codes, indicating that the webhooks are being sent successfully.

However, my server never actually receives any webhook requests.

Do you know what might be causing this?.. :sob:

1 Like

If you go to Insights > Webhooks on the partner dashboard can you see any logs on when the last webhook was sent?

Have you changed your server url in that time?

@JordanFinners

Hello!

The Webhook Dashboard shows that events are being sent successfully with a 200 status code.

However, no events have actually reached my server.

I’m certain they’re not hitting my server — everything was working properly before switching to the Managed Install (.toml) setup.

I would check your code and application, maybe it’s defaulting to 200 somewhere.
As if shopify is reporting it, something is giving shopify that response code.

Were these webhooks setup before via GraphQL or always via the toml section?

Managed installs doesn’t have any relation to this BTW you can use webhooks via toml or graphql regardless of your install approach.

1 Like

Ah, my bad.
Turns out I had an early return at the top of my webhook handler :upside_down_face:
Not sure why I put it there—probably left it in during some quick testing and forgot about it.

I must’ve looked pretty dumb for missing that, haha.
Appreciate the helpful and patient reply—thank you!

No problem! Glad you got it sorted!