Webhook VARIANTS_OUT_OF_STOCK / VARIANTS_IN_STOCK not triggered after inventory change

Hi everyone,

I’m experiencing an issue with webhooks not being triggered in my Shopify app.

When I change the inventory of a variant (either restocking or setting it to zero), the webhooks VARIANTS_OUT_OF_STOCK and VARIANTS_IN_STOCK are not triggered.

Here’s what I’ve confirmed:

  • The PRODUCTS_UPDATE webhook is successfully received when I update the variant.
  • I’m using Webhook version 2025-04 and API version 2025-04.
  • Continue selling when out of stock is disabled.
  • I’m updating inventory directly on the variant (tried both manually adding inventory and selling out through the online store).
  • Webhook is successfully registered:
{
    id: 1326852505665,
    address: '***/webhooks/variants/out-of-stock',
    topic: 'variants/out_of_stock',
    created_at: '2025-05-05T07:49:44-04:00',
    updated_at: '2025-05-05T07:49:44-04:00',
    format: 'json',
    fields: [],
    metafield_namespaces: [],
    api_version: '2025-04',
    private_metafield_namespaces: [],
    metafield_identifiers: []
  },
  {
    id: 1326852538433,
    address: '***/webhooks/variants/in-stock',
    topic: 'variants/in_stock',
    created_at: '2025-05-05T07:49:45-04:00',
    updated_at: '2025-05-05T07:49:45-04:00',
    format: 'json',
    fields: [],
    metafield_namespaces: [],
    api_version: '2025-04',
    private_metafield_namespaces: [],
    metafield_identifiers: []
  }

Does anyone have an idea why the VARIANTS_OUT_OF_STOCK or VARIANTS_IN_STOCK webhooks aren’t firing? Could I be missing something?

Thanks in advance!

1 Like

Hey @Jan_Ther,

Thanks for reporting this. I’ve set up some products the same as you have described and I’m also not getting the webhooks.

Has this worked previously for you? If so, when was the last time it fired?

I’m going to dig in further to see if I can find out more on what is expected here.

Hi,

Thanks for your quick follow-up. This is actually my first time trying this setup, and it feels like I’ve tried every possible step so far, but without success.

I really appreciate you digging into it, let me know if you find out anything or if there’s anything specific I should test in the meantime!

Thank you
Jan

Hey Jan, thanks for those additional details. We are looking in to this and have a follow up question. Can you share how you are currently subscribing to the webhooks? Are you using the app configuration file, graphql mutations, or something else?

I’m using GraphQL mutations for all webhooks because I need to update them dynamically.

Hey Jan,

Our team did identify an issue with those webhooks and have implemented a fix. Are these returning for you now?

Hey Kyle,
I tested it, but unfortunately there’s no change. I also tried unregistering and re-registering the webhooks. Should I be using a specific version? I’m currently testing with 2025-04.

Maybe I’m doing something wrong, trying to change it via variants:

Thank you for your time!
Jan

Thanks for testing that again Jan. I’m digging in further.

Hey Jan,

I tested yesterday and I was also not getting the webhooks. Testing again today though it is working. Can you double check and see if it’s working for you again?

1 Like

Great, thank you for letting me know. Yes, it’s working as it should today.

Thank you so much for your help :slight_smile:

Awesome, thanks for confirming. I was recording a video this morning to show our developers what I was doing, since it was working for them but not me. And of course once you start recording it will work every time :joy:

They confirmed it was likely the update propagating across all shops causing the difference we were seeing yesterday. If you do notice any reoccurrence though, let us know.

Haha, that’s always how it goes, hit record and everything magically works! :smiley: I’ll definitely reach out if anything changes. Thanks again, appreciate the help!

1 Like

Hi @KyleG-Shopify and @Jan_Ther ,

Did you try to receive the variants/in_stock webhook on a multi-location store?
My store has 2 locations that are allowed to fulfill online orders and one that isn’t.
If a variant has at least one location in stock, the webhook won’t trigger if another location goes from 0 to 1.
Do you know if it is a bug? Or do we have to set up something to receive variants/in_stock webhook for each in_stock event on a each location?

Great question Fabien! I’ll test here to see if I see the same as you. I believe I was testing only on a single location, so you could be right that it’s triggered when there’s no stock anywhere vs just at specific locations.

I’ll report back here with what I find.

I did some tests here and found the same as you.

Webhooks didn’t trigger when a single location went from inventory to zero (while other locations still had stock), or when going from zero to positive inventory at one location while others already had stock.

However, they fired perfectly when the entire variant went from having zero total inventory to having inventory across all locations, and vice versa.

For more granular location-based inventory notifications, I’d recommend using the inventory_levels/update webhook instead, which includes location data and can be customized with webhook filters to target specific locations or inventory thresholds.

1 Like