Occasionally missing webhook

Solved

Occasionally missing webhook

Tolulope_Akinol
Shopify Partner
25 1 1

I have an app that signs up for the order_create webhook when installed.  This works almost all of the time but I have just discovered an instance where an order was created but no webhook was received.  The webhook has worked for orders previous and after this missing order.  What is the reliability of webhooks and what are the workarounds developers can take to proactively discover when a webhook has not been received.

Accepted Solution (1)

james-langille
Shopify Staff (Retired)
70 15 28

This is an accepted solution.

Hi @Tolulope_Akinol,

Generally speaking, the Webhooks delivery system is very reliable. However, like any massive-scale operation, issues can arise in many different parts of the system. Maybe there was a temporary issue with:

  • Shopify Admin
  • Webhook delivery
  • The App
  • A store-specific problem
  • Networking issues

We do have retries in-place: so if for some reason we can't reach an app to deliver an event, it will be retried several times (with exponential backoff up to over a day later) before we give up trying.

One interesting point to note is that there is a size limit for event payloads. When delivered via EventBridge, we still send the event out just with an error message instead of the payload. However, for HTTPS delivery, we have no such mechanism.

As for workarounds, if an app absolutely requires peace-of-mind that they have 100% of the information they need at all times (even through system failures), they can consider using the Admin API to periodically poll for data and make sure nothing is missed. However, doing so isn't expected of all apps, and is definitely much harder to do properly.

To learn more visit the Shopify Help Center or the Community Blog.

View solution in original post

Reply 1 (1)

james-langille
Shopify Staff (Retired)
70 15 28

This is an accepted solution.

Hi @Tolulope_Akinol,

Generally speaking, the Webhooks delivery system is very reliable. However, like any massive-scale operation, issues can arise in many different parts of the system. Maybe there was a temporary issue with:

  • Shopify Admin
  • Webhook delivery
  • The App
  • A store-specific problem
  • Networking issues

We do have retries in-place: so if for some reason we can't reach an app to deliver an event, it will be retried several times (with exponential backoff up to over a day later) before we give up trying.

One interesting point to note is that there is a size limit for event payloads. When delivered via EventBridge, we still send the event out just with an error message instead of the payload. However, for HTTPS delivery, we have no such mechanism.

As for workarounds, if an app absolutely requires peace-of-mind that they have 100% of the information they need at all times (even through system failures), they can consider using the Admin API to periodically poll for data and make sure nothing is missed. However, doing so isn't expected of all apps, and is definitely much harder to do properly.

To learn more visit the Shopify Help Center or the Community Blog.