Your webhook handler was slow, so Shopify sent it again
The server reboots at two on a Saturday morning for a security update, which is what it's supposed to do. The app doesn't come back, because nobody told the process manager to start it on boot. It's a fundraising weekend. Orders keep arriving, Shopify keeps sending webhooks into nothing, and after four hours of retries it stops. On Monday the app is running again and looks perfectly healthy. It's…
Shopify can resend webhooks if an app sends a response after the five-second limit for handling them. This leads to duplicate order records if the server takes too long to acknowledge the webhook, causing issues during fundraising weekends when orders keep coming in. To recover from these missed webhooks, apps need to reconcile against Shopify's order data after a set period, comparing what they've recorded with what Shopify has.
Self-hosted apps are at risk due to potential downtime and lack of built-in resilience, as Shopify counts a slow response as a failure and retries the webhook. By acknowledging webhooks immediately and performing the necessary work later, apps can ensure they don't miss any sales. Managed hosting may reduce downtime but does not eliminate it entirely; self-hosted apps still need to handle server maintenance, firewalls, TLS renewal, and data obligations.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.