Webhook filter not respected for metafield-only updates (API version 2025-10)

I am experiencing unexpected behavior with the PRODUCTS_UPDATE webhook and webhook filters.

Details:

Issue:
I have set up a webhook subscription with the filter handle:* and am using API version 2025-10. According to the documentation, this webhook should only trigger when the product’s handle changes. However, I am still receiving webhook deliveries when only a metafield is updated (no changes to handle or any other filtered fields).

What I have checked:

  • The webhook subscription is correctly set with the filter handle:* and API version 2025-10.

  • The webhook payloads I receive after metafield updates show that only metafields are being changed.

  • No other product fields (including handle) are being updated.

  • There were no errors when creating or updating the webhook subscription.

Expected behavior:
Webhook should only be delivered when the handle field changes, not when only metafields are updated.

Actual behavior:
Webhook is delivered even when only metafields are updated.

Please investigate why the webhook filter is not being respected for metafield-only updates, or let me know if there are any undocumented limitations or known issues with webhook filtering for metafields.

Thank you so much for helping me!

I believe you’ve misunderstood how the webhook filters work. They will filter out products based on the expression you provide.

In your case, the expression “handle:*”, means match any handle, so it will provide updates for all products.

There is no expression that says “handle was updated” unfortunately.

1 Like

Hey all :waving_hand: - just +1-ing @bkspace here, this is what’s happening in this case. Our webhook filter inputs mirror our API query syntax for the most part. Just wanted to share the docs for that in case it’s helpful as well: