We are experiencing inconsistent behaviour with the Shopify Admin GraphQL API
Use case 1 :
When we query direct from postman, its returns proper response.
Use case 2 :
When we query through app bridge, its getting response with error “Access denied for markets field.”
Use case 3 :
When we query direct from postman, its returns proper response on another store.
Use case 4 :
When we query through app bridge, its getting proper response on another store.
Below is query returns error:
query {
products(first: 10, query: "id:8611672031512") {
edges {
node {
id
title
variants(first: 200) {
nodes {
id
title
price
sku
metafield(namespace: "$app", key: "priceRule") {
value
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
}
shop {
name
currencyCode
currencyFormats {
moneyInEmailsFormat
moneyWithCurrencyInEmailsFormat
}
}
markets(first: 50) {
edges {
node {
id
name
handle
enabled
primary
currencySettings {
baseCurrency {
currencyCode
}
}
}
}
}
currentAppInstallation{
id
metafield(namespace: "app_settings", key: "registractionForm") {
value
}
}
}
Error
{
"message": "Access denied for markets field.",
"locations": [
{
"line": 33,
"column": 3
}
],
"path": ["markets"],
"extensions": {
"code": "ACCESS_DENIED",
"documentation": "https://shopify.dev/api/usage/access-scopes"
}
}
Environment
• Embedded Shopify App
• Shopify App Bridge
• Admin GraphQL API
• Same application codebase
• Same app installation
• Same API scopes
• Same query logic
What We Have Verified
A. Apps granted scope
The following query executes successfully on both stores:
{
appInstallation {
accessScopes {
handle
}
}
}
Working store response:
{
"data": {
"appInstallation": {
"accessScopes": [
{
"handle": "read_cart_transforms"
},
{
"handle": "read_customers"
},
{
"handle": "read_discounts"
},
{
"handle": "read_draft_orders"
},
{
"handle": "read_markets"
},
{
"handle": "read_checkouts"
}
]
}
}
}
Non-working store response:
{
"data": {
"appInstallation": {
"accessScopes": [
{
"handle": "read_cart_transforms"
},
{
"handle": "read_customers"
},
{
"handle": "read_discounts"
},
{
"handle": "read_draft_orders"
},
{
"handle": "read_markets"
},
{
"handle": "read_checkouts"
}
]
}
}
}
B. Markets API Access
The following query executes successfully on both stores:
{
markets(first: 10) {
nodes {
id
name
}
}
}
Working store response:
{
"data": {
"markets": {
"nodes": [
{
"id": "...",
"name": "Canada"
}
]
}
}
}
Non-working store response:
{
"data": {
"markets": {
"nodes": [
{
"id": "...",
"name": "Canada"
}
]
}
}
}
This confirms that:
• The app can access the markets resource.
• Authentication is working.
• The read_markets scope appears to be granted.
Regions Query
The following query also succeeds:
{
markets(first: 10) {
nodes {
id
name
regions(first: 10) {
nodes {
name
}
}
}
}
}
Web Presence Query
The following query succeeds but returns null values:
{
markets(first: 10) {
nodes {
name
webPresence
}
}
}
Response:
{
"data": {
"markets": {
"nodes": [
{
"name": "Canada",
"webPresence": null
}
]
}
}
}
No access error is returned.
App Scopes / Authentication
We have verified:
• App installation is valid.
• App authentication is working.
• Other Admin GraphQL queries succeed.
• The issue is reproducible only on a specific store.
• The same application works correctly on another store.
Browser / App Bridge
We have ruled out:
• Browser cache
• Embedded App configuration
• App Bridge initialisation
• Session token issues
• Storefront/Admin authentication issues
The same store can successfully execute basic markets queries.
Observations
The error appears only within one of our production queries and Shopify reports:
{
"path": ["markets"],
"code": "ACCESS_DENIED"
}
even though basic markets queries succeed on the same store.
This suggests one of the following:
1. A nested field under markets requires additional permissions.
2. The store has a Markets-specific restriction or feature flag.
3. Shopify is returning ACCESS_DENIED at the parent markets field even though the actual denial occurs on a nested Markets sub-resource.
Request
Could Shopify Support please help determine:
1. Which specific field under markets is triggering the ACCESS_DENIED response?
2. Whether there are any store-level restrictions, feature flags, or permissions affecting Markets API access for this store?
3. Whether Shopify logs show a more detailed authorization failure than the GraphQL response currently provides?
