Shopify fulfillmentOrder cancellation data not available after webhook notification

Our off-Shopify site is configured to handle fulfillment requests from a Shopify storefront. When the site is notified of a fulfillment request, the data is immediately available. However, when a fulfillment request for cancellation is submitted, the data is not available via REST for several seconds after the notification is received by our site.

  1. Shopify admin requests cancellation of fulfillment

  2. Site receives notification via callback_url/fulfillment_order_notification

  3. Site polls Shopify REST end point

/admin/api/2022-10/assigned_fulfillment_orders.json?assignment_status=cancellation_requested
4. Site receives empty JSON array

"content" : "{\"fulfillment_orders\":[]}",
  1. Make 2nd request immediately, and receive same response.

  2. Wait 10 seconds and repeat the same request, and then get back the order with the cancellation request

{
  "fulfillment_orders": [
    {
      "id": XXXXXXX,
      "shop_id": YYYYYYYY,
      "order_id": ZZZZZZ,

I can’t find a note anywhere in the documentation that says that the data won’t be immediately available, so I’m looking for some guidance about whether this is an issue with Shopify’s REST API, or if the documentation is incomplete, or if we need to delay our polling of the site.

1 Like

Hey @colink - my understanding is that the data should be available relatively quickly (certainly faster than the average time it takes to make two polling requests). - could you let us know if you’re able to test this with this webhook subscription topic (if possible) and let us know if the issue persists? If it. does, or if it’s not feasible to test this way (or use it as a workaround with polling as a backup), could you include an X-Request-ID for one of the queries your site made that resulted in an empty array being surfaced? Happy to dig into this further.

Al | Shopify Developer Support

I’ll work on the webhook. In the mean time, here’s an X-Request-ID for a query that returned empty:

“x-request-id” : “f5c32a47-c476-4af9-8cb8-6159739bc855”,

and here’s one made a few minutes later that actually returned results:

X-Request-ID: ca05ad18-5f40-4cb2-9bd0-6509e931ae4b

Another datapoint on this - we’re seeing the same thing. Fulfillment requests are immediately available after receiving the notification, cancellation requests are not available for up to 10s after the notification.