In the Shopify API version (2025-07) and later, the markets
GraphQL query is returning empty webPresences
. Similarly, querying webPresences
directly also results in an empty array.
This behavior is not present in older versions (e.g., 2024-07), where the same queries return the expected data.
We are migrating to the latest version and need to fetch both markets
and webPresences
together. Could someone from the team confirm if this is a known change or an issue with the 2025-07 release?
1 Like
Hey @Malay_Acharya, thanks for reporting this.
I wasn’t able to replicate on my end. Can you share the full body of the request you are making that returns webPresences in older versions but not in the current versions?
If you can share the x-request-id from the response headers that will help as well.
Hey @Malay_Acharya, Are you still experiencing this issue, or can I mark this as solved?
Hey this is the curl for the request: curl --location 'https://<store-url>/admin/api/2025-07/graphql.json' \
--header 'Content-Type: application/json' \
--header 'X-Shopify-Access-Token: <token>' \
--data '{
"query": "query GetMarkets {\n markets(first: 100) {\n nodes {\n id\n name\n handle\n status\n currencySettings {\n baseCurrency {\n currencyCode\n }\n }\n catalogs(first: 10) {\n edges {\n cursor\n node {\n id\n title\n }\n }\n nodes {\n id\n title\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n webPresences(first: 15) {\n edges {\n cursor\n node {\n id\n defaultLocale {\n locale\n published\n }\n alternateLocales {\n locale\n name\n primary\n published\n }\n domain {\n id\n host\n localization {\n defaultLocale\n country\n alternateLocales\n }\n }\n rootUrls {\n locale\n url\n }\n subfolderSuffix\n }\n }\n nodes {\n id\n defaultLocale {\n locale\n published\n }\n alternateLocales {\n locale\n name\n primary\n published\n }\n domain {\n id\n host\n localization {\n defaultLocale\n country\n alternateLocales\n }\n }\n rootUrls {\n locale\n url\n }\n subfolderSuffix\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n regions(first: 100) {\n nodes {\n id\n name\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n}",
"operationName": "GetMarkets"
}'
Thanks for sharing that. There were some changes with market functionality in recent versions where the the webPresences
field can be nullable.
When markets return empty webPresences
, it means those markets are designed to be accessible on the primary market’s domains using country selectors instead of having their own dedicated domains, subdomains, or subfolders. According to the Market.webPresences documentation:
If a market doesn’t have any web presences, then the market is accessible on the primary market’s domains using country selectors.