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.
-
How do I know which products got updated or where does it stop?
-
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?