A space to discuss GraphQL queries, mutations, troubleshooting, throttling, and best practices.
I am load testing updating available quantities per location using the new InventorySetOnHandQuantities for the 2023-01 API Release.
Keep getting this response every so often because of the large data loads:
{"errors":[{"message":"Timeout","extensions":{"code":"TIMEOUT"}}]}
Example of large data load:
{mutation ( $input1: InventorySetOnHandQuantitiesInput! $input2: InventorySetOnHandQuantitiesInput! $input3: InventorySetOnHandQuantitiesInput! $input4: InventorySetOnHandQuantitiesInput! $input5: InventorySetOnHandQuantitiesInput! $input6: InventorySetOnHandQuantitiesInput! $input7: InventorySetOnHandQuantitiesInput! $input8: InventorySetOnHandQuantitiesInput! $input9: InventorySetOnHandQuantitiesInput! $input10: InventorySetOnHandQuantitiesInput! $input11: InventorySetOnHandQuantitiesInput! $input12: InventorySetOnHandQuantitiesInput! $input13: InventorySetOnHandQuantitiesInput! $input14: InventorySetOnHandQuantitiesInput! $input15: InventorySetOnHandQuantitiesInput! $input16: InventorySetOnHandQuantitiesInput! $input17: InventorySetOnHandQuantitiesInput! $input18: InventorySetOnHandQuantitiesInput! $input19: InventorySetOnHandQuantitiesInput! $input20: InventorySetOnHandQuantitiesInput! $input21: InventorySetOnHandQuantitiesInput! $input22: InventorySetOnHandQuantitiesInput! $input23: InventorySetOnHandQuantitiesInput! $input24: InventorySetOnHandQuantitiesInput! $input25: InventorySetOnHandQuantitiesInput! $input26: InventorySetOnHandQuantitiesInput! $input27: InventorySetOnHandQuantitiesInput! $input28: InventorySetOnHandQuantitiesInput! $input29: InventorySetOnHandQuantitiesInput! $input30: InventorySetOnHandQuantitiesInput! $input31: InventorySetOnHandQuantitiesInput! $input32: InventorySetOnHandQuantitiesInput! $input33: InventorySetOnHandQuantitiesInput! $input34: InventorySetOnHandQuantitiesInput! $input35: InventorySetOnHandQuantitiesInput! $input36: InventorySetOnHandQuantitiesInput! $input37: InventorySetOnHandQuantitiesInput! $input38: InventorySetOnHandQuantitiesInput! $input39: InventorySetOnHandQuantitiesInput! $input40: InventorySetOnHandQuantitiesInput! $input41: InventorySetOnHandQuantitiesInput! $input42: InventorySetOnHandQuantitiesInput! $input43: InventorySetOnHandQuantitiesInput! $input44: InventorySetOnHandQuantitiesInput! $input45: InventorySetOnHandQuantitiesInput! $input46: InventorySetOnHandQuantitiesInput! $input47: InventorySetOnHandQuantitiesInput! $input48: InventorySetOnHandQuantitiesInput! $input49: InventorySetOnHandQuantitiesInput! $input50: InventorySetOnHandQuantitiesInput! ... ){ mutation1: inventorySetOnHandQuantities(input: $input1) { inventoryAdjustmentGroup { id reason } userErrors { field message } } mutation2: inventorySetOnHandQuantities(input: $input2) { inventoryAdjustmentGroup { id reason } userErrors { field message } } .....
Each variable set contains 250 in each:
{ "input1": { "reason": "restock", "setQuantities": [ { "inventoryItemId": "gid://shopify/InventoryItem/42668819644464", "locationId": "gid://shopify/Location/63640764464", "quantity": 999 }, { "inventoryItemId": "gid://shopify/InventoryItem/42668819644464", "locationId": "gid://shopify/Location/63640797232", "quantity": 999 }, { "inventoryItemId": "gid://shopify/InventoryItem/42668819644464", "locationId": "gid://shopify/Location/63628902448", "quantity": 999 }, ... ] }, "input2": { "reason": "restock", "setQuantities": [ { "inventoryItemId": "gid://shopify/InventoryItem/42668819644464", "locationId": "gid://shopify/Location/123456789", "quantity": 999 }, ...
When I get the `Timeout` error I check the inventory of products and it it still updated some of the products inventories.
1) How do I know which products got updated or where does it stop?
2) How do I account for the Timeout error?
- I have sent 40 mutations and it worked, the next time I did it, I got the Timeout Error. So sometimes it works, sometimes it doesn't?
- Clearly I would just send only a certain amount of mutations at a time, but how can I figure that out?