InventorySetQuantities mutation broken

Apparently with the introduction of changes to the inventorySetQuantities mutation in the come 2026-01 (explained here: Improved compare and swap inventory updates for the inventorySetQuantities mutation - Shopify developer changelog ) the documentation and schema of the mutation in the latest version (2025-10) is broken.

The documentation of the latest version already declares the fields “compareQuantity” and “ignoreCompareQuantity” as deprecated, while referencing the new field “changeFromQuantity” which doesn’t even exist in the documentation, yet.

More urgently however, the existing schema for 2025-10 has apparently been changed, removing the ignoreCompareQuantity field altogether, which for us results in breaking CI pipeline, with error Field “ignoreCompareQuantity” is not defined by type “InventorySetQuantitiesInput”. (TypeScript code with types generated by graphql-codegen using @shopify/api-codegen-preset)

It’s already the second time this year that Shopify has broken existing software by modifying a production version schema after it’s production release. Last time it was fixed after 3 days, so we’ve been sitting this one out for a couple of days now, but it’s not been addressed so far.

1 Like

Hey @ro_glc, I manually tested the inventorySetQuantities mutation on API version 2025-10 and confirmed the API itself isn’t broken. ignoreCompareQuantity is still in the schema and works fine when I test. The issue you’re hitting looks to be specific to codegen.

We do have a few resources that should help. The @shopify/api-codegen-preset configuration docs cover the available options, and the typing GraphQL operations guide has additional context on the preset setup.

1 Like

Hey Kyle, thanks for looking into it.

Yes, the API itself is not broken, so thats good :+1:

I did consult both documents you reference, before opening the issue here. Our config is setup in a way that aligns with your guidance and has served us well for a couple of month already.

However, without any code changes in the vicinity of our Shopify API interactions, our CI pipeline suddenly started to break with the error posted above:

[FAILED] GraphQL Document Validation failed with 1 errors;
[FAILED]   Error 0: Field "ignoreCompareQuantity" is not defined by type "InventorySetQuantitiesInput".

And we are able to reproduce the same error on other machines, once we remove all cached schema files. And all of our other types continue to work as well, it’s just this specific field that’s now missing. Which also happens to be the one thats been deprecated :wink:

We’ve also observed this exact behavior, when a field we used was deprecated in an upcoming version. It was solved without any contribution on our part after a couple of days.

To conclude: I still do not know how to solve this.
Are you certain that during your testing you didn’t have a cached version of the schema file? (graphql-codegen stores them in the outputDir)

Best regards
Robert

This is the diff between the admin-2025-07.schema.json, downloaded on October 1st (left) and downloaded today (right; both run through prettier).

So I do not understand how you get to the conclusion that

ignoreCompareQuantity is still in the schema and works fine when I test.

Since the endpoint requires either compareQuantity or ignoreCompareQuantity to be defined, but both fields have been removed from the schema, there is currently no way to generate a typings file from the schema, that matches the behavior of the actual API.

By now I do understand that there are apparently different URLs to get the schema from. Either
a) directly from the individual endpoint that the requests are going to or
b) from a central source at https://shopify.dev/admin-graphql-direct-proxy.

While e.g. the “Shopify GraphiQL App” get the schema from an individual endpoint (a) and appears to have schema file which still contains the ignoreCompareQuantity field, now marked as deprecated (which it wasn’t before), the documentation provided above advises to use the central source (b).

Following the documentation, we are downloading the schema from that central source (b). So this is what the diff-screenshot above is comparing.

Maybe in your testing, you used a different endpoint / schema source @KyleG-Shopify ?