[Urgent] Receiving an error while using Shopify's GraphQL API to fetch products

Topic summary

A developer’s Shopify GraphQL integration suddenly stopped working at 8:30 PM IST, causing product pages to display blank. The issue is critical due to an upcoming campaign launch.

Error Details:

  • Query structure: { shop { products { } } }
  • Error message: “Field ‘products’ doesn’t exist on type ‘Shop’”
  • Library used: graphql-js-client from npm
  • Had been functioning without issues for over a year

Root Cause Identified:
Shopify Support confirmed that the products field under the shop object is not officially supported in stable versions of either the Admin API or Storefront API. The field may have worked previously due to legacy functionality retention, but undocumented features can change without notice.

Recommended Solution:

  • Query products at the root level instead: { products(first:10) { ... } }
  • Use only officially documented fields and structures for production applications
  • Consider opening an issue on the official Shopify Node.js library GitHub repo

Status: Unresolved from developer’s perspective, though workaround provided. The sudden breaking change remains unexplained beyond “unsupported functionality” reasoning.

Summarized with AI on November 19. AI used: claude-sonnet-4-5-20250929.

Hey!

We are using a GraphQL API to access Shopify on our own website. However, since 8.30 pm IST (Indian Standard Time) the API seems to have stopped working and our product pages on the website appear blank. Did something change on Shopify’s end?

This is extremely urgent for us as we are launching a very important campaign tomorrow. So it’s very urgent.

Since the code was working as expected until 8.30 pm IST. We are confident it is not an issue from our code. This is the library we are using - npmjs (dot) com/package/graphql-js-client
This is the API response we receive:

"errors": [
        {
            "message": "Field 'products' doesn't exist on type 'Shop'",
            "locations": [
                {
                    "line": 1,
                    "column": 16
                }
            ],
            "path": [
                "query",
                "shop",
                "products"
            ],
            "extensions": {
                "code": "undefinedField",
                "typeName": "Shop",
                "fieldName": "products"
            }
        }
    ]
}
1 Like

Hey @FP_DEV

Can you confirm the query please? The response suggests the query might be structured { shop { products { instead of simply { products {.

Heyy SBD_

Yes, It was structured as **{ shop { products {**.

We were able to use this structure until yesterday without any problems.

Hi @FP_DEV :waving_hand:

It’s unclear which schema and version is being used here. Currently, neither Admin API nor SFAPI have stable versions that support a products field/connection on the shop object. Querying products on the root will resolve this error: { products (first:10) { ... } }.

Hope that helps!

Hey @ShopifyDevSup ,

Can you also help me understand why this would suddenly happen and stop working, irrespective of the schema and the version?

The website was working fine one minute and then all the product pages stopped working all of a sudden. We have been using this library for over a year now. → npmjs(dot)com/package/graphql-js-client

Hey @FP_DEV ,

I definitely get where you’re coming from here, this would for sure be frustrating - especially if it’s functionality your app depends on, so I just wanted to say thank you for bearing with us here. I also just want to clarify what we’re seeing on our end. As mentioned in our earlier reply here, the ‘products’ field under the ‘shop’ object isn’t officially supported in the stable versions of either the Admin API or the Storefront API. This is likely the root cause of the issue you’re reporting.

It may have been working previously due to to various reasons (generally, legacy functionality/dependency retention), but if a specific functionality isn’t documented in our developer documentation and officially supported, it can change without notice. This instability/change without notice method also applies to the unstable version of the API as well - so I just wanted to mention that

We recommend sticking to the officially documented fields and structures for your production apps/integrations as this is the best way to ensure the stability and reliability of your apps/functionality. As we mentioned, querying products on the root of your query is the best way to grab specific product information currently, but since you’re using the Node library, another place you may want to reach out to for potential further information would be the official Github repo for the Node.js library here. I’d recommend opening an issue on that repo, in case anything has changed with the Node library itself recently.

Hope this helps and thanks again for reaching out

Al | Shopify Developer Support