We are investigating inconsistent products/create webhook delivery for products created through the Admin GraphQL productSet mutation.
Our app has shop-specific GraphQL webhook subscriptions for:
PRODUCTS_CREATEPRODUCTS_UPDATE
The subscriptions are active, unfiltered, use JSON format, and deliver to Google Cloud Pub/Sub. The same shop is successfully receiving other webhook topics, including inventory_items/create, and other shops are receiving products/create / products/update normally.
Observed issue:
One product created with productSet did not produce a products/create or products/update webhook, even though Shopify created the product and emitted many inventory_items/create webhooks for the variants.
Example missing case:
- Admin API mutation:
productSet - Product status:
ACTIVE - Variants: 120
- Options: 2 options,
SizeandColor - Product ID:
gid://shopify/Product/8066171437125 - Product created at:
2026-04-28T12:03:17Z - Product updated at:
2026-04-28T12:03:23Z inventory_items/createwebhooks arrived for variant SKUs- No
products/createorproducts/updatewebhook appeared in the Shopify developer dashboard or our raw Pub/Sub capture more than 50 minutes later
Control tests with the same shop and same offline access token:
-
productCreate,DRAFT, one variantproducts/createarrived.
-
productSet,DRAFT, 101 variants, one optionproducts/createarrived.- Payload had
variants.length = 100,variant_gids.length = 101.
-
productCreate,ACTIVE, one variantproducts/createarrived.
-
productSet,ACTIVE, 101 variants, one optionproducts/createarrived.
-
productSet,DRAFT, 120 variants, two-option matrixproducts/createarrived.- Payload had
variants.length = 100,variant_gids.length = 120.
-
productSet,ACTIVE, 120 variants, two-option matrixproducts/createeventually arrived, but with a delay of about 7 minutes 49 seconds.- Payload had
variants.length = 100,variant_gids.length = 120.
Questions:
- Are
products/createwebhooks expected to be emitted reliably for synchronousproductSetproduct creation? - Are there known delays or suppression conditions for
productSetproducts with more than 100 variants? - Could product status
ACTIVE, extended variants, or two-option matrix creation affect product webhook emission? - If this is expected to be best-effort only, should apps enqueue their own reconciliation after successful Admin API product mutations rather than relying on product webhooks for self-initiated changes?