It seems that (at least) the ‘app/uninstalled’ webhook is inconsistently subscribed to or fired when using Shopify managed webhooks. Since switching from shop-specific webhooks in my old NextJS app to app-specific webhooks in my new Remix app, I’m seeing an issue with the ‘app/uninstalled’ webhook not being fired when a store that has reinstalled uninstalls. Sometimes it fires, sometimes it doesn’t. The app being installed/uninstalled is being recorded in the app history, but there is no record of the webhook being fired/received in either the webhook delivery logs for the app, or my server logs.
Having the same issue, but the GDPR webhooks seem to be more consistent.
Are you still using shop-specific webhooks then? Or are you trusting the Shopify-managed app-specific webhooks?
If this happens when quickly uninstalling/installing apps in a row, then it could be the webhook being debounced by the delivery system: if this is about testing a certain type of webhook, then the CLI (app webhook trigger) might be a better way. But if you think the webhooks are missing, then I’d advise to contact support via the Partners dashboard so that they’ll be able to dig the specific issue.
Hey Cedric thanks for replying! This is happening when uninstalling/reinstalling my app. I’ve tested time delays but it still seems to happen if I install within 15 minutes or so of uninstalling. What I noticed is that if I installed/uninstalled/reinstalled a few times in a row, with delays of up to 15 minutes between actions, the app/uninstalled webhook would not correctly fire. Is there a known delay in resubscribing a store to toml configured webhooks when reinstalling an app?
Thanks!
Actually you said debounced. So is there a known delay in sending the same webhook to an app for the same store?
yes, 15 min is the max threshold for webhook debouncing: that means webhooks with the exact same payload+topic+destination are debounced when sent in less than 15min. I think it would apply in that case, because the same app+shop are being installed/uninstalled multiple times so it would send the same payload.
Aha!! This makes a lot of sense. Thanks for clearing this up for me!
Hey Everyone! @Cedric-Shopify s Solution explains why we do not get these while testing the application, but this debouncing mechanism could affect real world scenarios as well, because these events (app uninstalls) in this timeframe are considered the same, but in reality they are totally different events. How could we “retrigger” or replay an uninstall event, which was debounced like that? Is there sufficient information to replay the event from the webhook delivery logs?
Thanks for your answer in advance!
Hello, you have an excellent point: not all the webhook topics should be debounced. For some cases and topics, e.g. an process modifying a product multiple times, we only want the latest products/updated
webhook to be fired (maybe not every single change in a short duration). But for the app/uninstalled
topic, it’s not the case.
From the initial discussion, we’ve started to look at our debouncing configs and topics and started to revise which make sense. As a consequence, I can tell you that since last week, the app/uninstalled
topic is not debounced anymore: that means you can install/uninstall your app multiple times and get a webhook every time (given that you have an active subscription before uninstalling). We’ll follow up with more tweaks about the topics, with the idea of providing the most useful and complete information specific for each topic!
Thanks Cedric for the quick response, looking forward for the updates!
my friking gosh… i spent DAYS with this… We should have some flag so we can TEST the uninstall webhook. And a huge RED BANNER on the docs to give us some kind of warning. i have been pulling my hair off because no one was able to tell this little piece of infomration on the docs? daDSfadfasdfasdfasdfasssssssssss