Skip to main content

Troubleshooting webhooks

If your app uses webhooks, then you should monitor for and respond to failed webhook delivery notifications. Shopify retries failed webhook calls up to eight times in a four-hour period, but if failures persist past that point the webhook subscription is removed.

If your app was created in the Partner Dashboard or using Shopify CLI, then you can use the webhook delivery metrics report to troubleshoot delivery failures and get information on performance.

This guide shows you how to use the webhook metrics report to track any failed webhook deliveries and fix them before they affect app users.

Info

Webhooks are divided by topic. Refer to the Webhooks references for the complete list of supported webhook topics.


You can view a report of your app's webhook deliveries from the past 7 days in the Partner Dashboard.

  1. From your Partner Dashboard, click Apps.
  2. Click the name of your app.
  3. In the sidebar, click Insights > Webhook metrics.
Tip

You can manually trigger a webhook to check delivery metrics by updating your development store. For example, update a product to trigger products/update.


The Webhook metrics page shows failed deliveries over time. Each topic lists the following information for each of the app's webhook subscriptions:

Webhook metrics
FieldDescription
Failed delivery rateThe percentage of unsuccessful delivery attempts out of the total number of delivery attempts
Removed webhooksThe number of removed webhook subscriptions. Webhooks are retries up to 8 times, after multiple failures in a 24 hour period the webhook subscription will be removed.
Response timeThe 90th percentile of an app's webhook response time. This means that 90% of the app's responses were equal to or faster than the listed time.

From the Webhook metrics page, you can view a webhook's delivery logs and delivery details.


When you click a webhook topic on the Webhook metrics page, you can view the delivery logs for that topic. The delivery logs list the following information:

Webhook metrics
FieldDescription
ResponseThe response code that your app sent when it received the webhook.
RetriesThe number of delivery attempts that were made to deliver that particular payload.
ShopThe URL of the Shopify store that's associated with the delivery.
Shop IDThe ID of the Shopify store that's associated with the delivery.
Subscription IDThe unique ID of the subscription that's associated with the delivery.
TimeThe date and time that the most recent delivery attempt was made.
Note

The delivery logs dashboard doesn't provide real-time updates. Data could be delayed up to several minutes.

Anchor to Responses and retriesResponses and retries

A 200 series status response is considered successful. If your app has a high rate of successful responses, then the logs display a sample representation of successful responses.

If your app didn't respond with a 200 series status code, then the webhook delivery failed. If the delivery fails, then Shopify retries to deliver the webhook up to 8 times.

Use the response and the number of retries to help figure out which webhooks to fix first. Prioritize fixing the webhooks that have any of the following errors:

  • Removed response: Removed webhook subscriptions won't receive any deliveries unless you create them again.

  • Delivery failed response and 8 retries: After 8 failed delivery attempts, Shopify stops attempting to deliver the webhook. For webhooks with 8 failed delivery attempts, you might need to import missing data. Webhooks that have failed multiple times in a row are likely to continue failing. You might miss data if these webhooks continue to fail.


Anchor to View delivery detailsView delivery details

When you click a delivery on the Delivery logs page, you can view additional information about the delivery, including the following:

Webhook metrics
FieldDescription
EndpointThe endpoint that the delivery was sent to.
HTTP headersThe HTTP headers that are sent with the delivery.
Payload sizeThe size of the delivery's payload.
Response timeThe time between the request and the response. If your app doesn't respond within five seconds, then the delivery fails.
RetriesThe number of delivery attempts left. If there are no retries left and the latest attempt failed.

Anchor to Troubleshooting failed deliveriesTroubleshooting failed deliveries

Delays in data processing that are caused by webhook failures can have an impact on users. Each time that a delivery fails, the time between retried deliveries increases. This can cause your data to become out of sync, especially if you process a lot of webhook events or time-sensitive data.

To identify failed deliveries, look for the following issues:

Webhook metrics
IssueDescription
Failed delivery rates over 0.5%

This is considered a higher-than-average failed delivery rate, and could mean that your webhook is failing across multiple stores, or has failed multiple times in a row.

A high failed delivery rate on one topic might indicate a store-specific or payload-specific error.

Removed webhooks

Your app isn't receiving data for subscriptions that have been removed after multiple failed delivery attempts.

You’ll need to fix the issue, then recreate the webhook subscriptions.

Response times between four and five secondsThe app must respond to the webhook within five seconds. If your app doesn't respond, then the delivery fails. To resolve timeout failures, delay processing your webhook until you've sent your response.
Same failed delivery rates across all topics

If your topics all have a high failed delivery rate, then your backend might not be responding.

To troubleshoot, use your monitoring tools.


Was this page helpful?