inventoryActivate mutation behaving differently on 2nd store

We’re currently using API version 2024-01, I know old, but are in the process of testing all our API calls that we’ve switched to graphQL. That said, our bulk inventory update, which runs multiple times per day on the same inventory items, uses the 2024-01 inventoryActivate mutation e.g.

mutation MultipleInventoryUpdates( $locationId: ID! ) { inventoryUpdateResult_1: inventoryActivate ( locationId:$locationId ,inventoryItemId:"gid://shopify/InventoryItem/48822742778075" ,available:462 ) { ...inventoryFields } inventoryUpdateResult_2: inventoryActivate ( locationId:$locationId ,inventoryItemId:"gid://shopify/InventoryItem/48822744875227" ,available:317 ) { ...inventoryFields } } fragment inventoryFields on InventoryActivatePayload { inventoryLevel { location { name } item { id, sku } quantities(names: ["available"]) { quantity } } userErrors { field message } }

This works on many stores currently, but when trying to perform this mutation on a new store we’re working with, we get this error:

"Not allowed to set available quantity when the item is already active at the location."

During development of converting all our REST to GraphQL, we found we get this error on version 2025-04 and found that we get this same error and have to migrate to the inventorySetQuantities mutation.

But why are we getting this error that occurs in 2025-04 when we call the 2024-01 endpoint? Is it that we’re grandfathered in for now on the existing stores, but on the new store, since this version is not supported, it behind the scenes is using the latest api version? (Is there a way, in the response maybe, to request the API version used to verify?)

Hey,

So is your question here about handling the change to how activate inventory works
Or an error you don’t expect from an older version?

@JordanFinners the latter. We need to add this store in the next couple of days. I dont know if we’ll finish the full conversion to graph in time, so was wondering if there is some way to make the old version work? Clause ai said something about a store could potentially have a “Legacy Mode” setting that may allow this to work?

In the response there is a header X-Shopify-API-Versionwhich let’s you see what version your request was executed against.
Shopify says the apis are support for 12 months so I’m guessing that you’re request is going to the oldest supported version which has this error message.
They cover the cycle here

A simpler way to avoid this would be to check if the item is already active and then not call Shopify API to activate it. You can do this by querying a inventory item and location id and seeing if there is an inventory level.
Then you’d only need to process those that need activating which will be easier on Shopify API and probably reduce the amount of work you need to do as well.

@JordanFinners yes, so I guess the answer is that they’ve grandfathered my existing calls for the other stores which is why they work for them and not this new one. Interestingly, I added a new store using this 2024-01 api in May, and it was past the year mark too, but it worked (and still does), so maybe they give some leeway, like 18 months, than what they officially state.

I’m actually using this api as a work around to bulk update inventory from our app throughout the day, not actually Activate. In the older api versions, this was the only way to do bulk updates. It was a loophole they had, but now they have a proper method setInventoryQuantities (or something like that).

So it looks like we need to finish converting our code to 2025-07, which is fair, but was just hoping there was a way to use the old version since we already are on other stores.

Thanks for the help.