Shopify Admin GraphQL Products Fragments API is throwing Internal Server Error

Shopify Products Fragments API Issue

Problem Description

We are facing an issue when requesting product data for around 100 containerIds for a client from Shopify. The GraphQL nodes query consistently returns an Internal Server Error. This is blocking our ability to fetch product details at scale.

We need clarification and solutions on the following points:

Why are we receiving this Internal Server Error?

What is the recommended solution or best practice to handle this issue?
Request Details

Request Headers

X-Shopify-Access-Token: shpat_[REDACTED]
Content-Type: application/json
User-Agent: PostmanRuntime/7.49.1
Accept: /
Postman-Token: [REDACTED]
Host: [REDACTED]
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 6377

Request Body

query: "query Products($ids: [ID!]!) {
nodes(ids: $ids) {
… on Product {
variantsCount{
count
}
id
title
vendor
productType
description
descriptionHtml
handle
tags
templateSuffix
status
seo {
title
description
}
featuredImage {
id
originalSrc
transformedSrc
}
images(first: 100) {
edges {
node {
id
originalSrc
transformedSrc
}
}
}
publishedAt
createdAt
updatedAt
publishedOnCurrentPublication
variants(first: 100) {
edges {
node {
id
title
position
sku
price
compareAtPrice
inventoryQuantity
barcode
inventoryPolicy
taxable
createdAt
updatedAt
image {
id
originalSrc
transformedSrc
}
selectedOptions {
name
value
optionValue {
id
}
}
inventoryItem {
id
tracked
requiresShipping
measurement {
id
weight {
unit
value
}
}
inventoryLevels(first: 200) {
edges {
node {
id
quantities(names: [“available”]) {
name
quantity
}
updatedAt
location {
id
fulfillmentService {
handle
serviceName
}
}
}
}
}
}
}
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
},

  options {
    id
    name
    position
    values
  }
}

}
}"
operationName: null
variables: “{
“ids” :[
“gid://shopify/Product/9089083932896”,
“gid://shopify/Product/9088500007136”,
“gid://shopify/Product/9088936149216”,
“gid://shopify/Product/9089305149664”,
“gid://shopify/Product/9088748454112”,
“gid://shopify/Product/9089078264032”,
“gid://shopify/Product/9089232208096”,
“gid://shopify/Product/9089013252320”,
“gid://shopify/Product/9089295745248”,
“gid://shopify/Product/9088491815136”,
“gid://shopify/Product/9089114210528”,
“gid://shopify/Product/9089217560800”,
“gid://shopify/Product/9089318519008”,
“gid://shopify/Product/9089320026336”,
“gid://shopify/Product/9088967934176”,
“gid://shopify/Product/9089222869216”,
“gid://shopify/Product/9089214284000”,
“gid://shopify/Product/9088736428256”,
“gid://shopify/Product/9089285816544”,
“gid://shopify/Product/9089375109344”,
“gid://shopify/Product/9089304854752”,
“gid://shopify/Product/9089021182176”,
“gid://shopify/Product/9089319993568”,
“gid://shopify/Product/9089313734880”,
“gid://shopify/Product/9089281327328”,
“gid://shopify/Product/9088507248864”,
“gid://shopify/Product/9088935592160”,
“gid://shopify/Product/9088766640352”,
“gid://shopify/Product/9088967180512”,
“gid://shopify/Product/9088980091104”,
“gid://shopify/Product/9089113587936”,
“gid://shopify/Product/9089383137504”,
“gid://shopify/Product/9088775848160”,
“gid://shopify/Product/9088519831776”,
“gid://shopify/Product/9088770113760”,
“gid://shopify/Product/9089026621664”,
“gid://shopify/Product/9088955646176”,
“gid://shopify/Product/9089081082080”,
“gid://shopify/Product/9089324777696”,
“gid://shopify/Product/9089212383456”,
“gid://shopify/Product/9088972882144”,
“gid://shopify/Product/9089245905120”,
“gid://shopify/Product/9089309081824”,
“gid://shopify/Product/9089103036640”,
“gid://shopify/Product/9088808517856”,
“gid://shopify/Product/9089102905568”,
“gid://shopify/Product/9088509182176”,
“gid://shopify/Product/9089284931808”,
“gid://shopify/Product/9089114636512”,
“gid://shopify/Product/9088774734048”,
“gid://shopify/Product/9089246658784”,
“gid://shopify/Product/9089107820768”,
“gid://shopify/Product/9089101856992”,
“gid://shopify/Product/9088510623968”,
“gid://shopify/Product/9088993263840”,
“gid://shopify/Product/9089347256544”,
“gid://shopify/Product/9089270251744”,
“gid://shopify/Product/9088525336800”,
“gid://shopify/Product/9089297252576”,
“gid://shopify/Product/9089124663520”,
“gid://shopify/Product/9089339457760”,
“gid://shopify/Product/9088996409568”,
“gid://shopify/Product/9088984744160”,
“gid://shopify/Product/9089327268064”,
“gid://shopify/Product/9088525959392”,
“gid://shopify/Product/9088988578016”,
“gid://shopify/Product/9089258717408”,
“gid://shopify/Product/9089042809056”,
“gid://shopify/Product/9088783712480”,
“gid://shopify/Product/9088984908000”,
“gid://shopify/Product/9088982221024”,
“gid://shopify/Product/9089201930464”,
“gid://shopify/Product/9088747864288”,
“gid://shopify/Product/9088955482336”,
“gid://shopify/Product/9089235648736”,
“gid://shopify/Product/9088745406688”,
“gid://shopify/Product/9088957284576”,
“gid://shopify/Product/9088969048288”,
“gid://shopify/Product/9089010172128”,
“gid://shopify/Product/9089208123616”,
“gid://shopify/Product/9089000931552”,
“gid://shopify/Product/9089330479328”,
“gid://shopify/Product/9089290928352”,
“gid://shopify/Product/9088798097632”,
“gid://shopify/Product/9089305051360”,
“gid://shopify/Product/9088497484000”,
“gid://shopify/Product/9089256947936”,
“gid://shopify/Product/9088974094560”,
“gid://shopify/Product/9089010860256”,
“gid://shopify/Product/9089209630944”,
“gid://shopify/Product/9089112211680”,
“gid://shopify/Product/9089293451488”,
“gid://shopify/Product/9089027768544”,
“gid://shopify/Product/9088755630304”,
“gid://shopify/Product/9089310720224”,
“gid://shopify/Product/9089312948448”,
“gid://shopify/Product/9089227784416”,
“gid://shopify/Product/9089221165280”,
“gid://shopify/Product/9089266680032”,
“gid://shopify/Product/9088775979232”
]
}”

Response Headers

Date: Thu, 11 Dec 2025 11:54:29 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
x-sorting-hat-podid: 223
x-sorting-hat-shopid: 78370275552
x-stats-apiclientid: 5045527
x-stats-apipermissionid: 619140808928
x-request-id: a535a39c-0d4a-4501-a5a4-aa7562354c52-1765454024
server-timing: processing;dur=45070, verdict_flag_enabled;desc=“count=21”;dur=61.438, _y;desc=“54fff121-ed19-43db-9629-68270bd985e9”, _s;desc=“2ae1a337-8de4-4847-8290-18471d12a399”
content-security-policy: default-src ‘self’ data: blob: ‘unsafe-inline’ ‘unsafe-eval’ https://* shopify-pos://*; […]
x-dc: gcp-us-central1,gcp-us-east1,gcp-us-east1
Alt-Svc: h3=“:443”; ma=86400
cf-cache-status: DYNAMIC
Server-Timing: cfRequestDuration;dur=45440.999985
Server: cloudflare
CF-RAY: 9ac4c883dcda47e4-BOM

Response Body

{“errors”:“Internal Server Error”}

Hi @Himanshu_Sahu! The x-request-id you shared is from December 11th, so unfortunately it’s past our log retention window and I can’t pull specifics from it. That said, looking at your query and response headers, the issue is pretty clear.

Your server-timing: processing;dur=45070 header shows the server spent ~45 seconds processing before returning the error suggesting a timeout.

For fetching product data at this scale, bulk operations are the way to go. They run asynchronously and don’t have the same cost/rate limits as regular queries. You’d submit the query, poll for completion, then download the JSONL result.

If bulk operations don’t fit your use case, batching into smaller requests (10-25 products per call) and fetching inventory data separately would also work. You might also want to reconsider whether you actually need 200 inventory levels per variant as that’s a lot of location data and may be overkill depending on what you’re building.

Hello @Donal-Shopify

Here are the updated API call details,

Request Details:

POST https://rvinyl-tm.myshopify.com/admin/api/2025-10/graphql.json

Request Headers

X-Shopify-Access-Token: [REDACTED]
Content-Type: application/json
User-Agent: PostmanRuntime/7.51.0
Postman-Token: [REDACTED]
Host: [REDACTED]
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 6299

Request Body

query: "query Products($ids: [ID!]!) {
nodes(ids: $ids) {
… on Product {
variantsCount{
count
}
id
title
vendor
productType
description
descriptionHtml
handle
tags
templateSuffix
status
seo {
title
description
}
featuredImage {
id
originalSrc
transformedSrc
}
images(first: 100) {
edges {
node {
id
originalSrc
transformedSrc
}
}
}
publishedAt
createdAt
updatedAt
publishedOnCurrentPublication
variants(first: 100) {
edges {
node {
id
title
position
sku
price
compareAtPrice
inventoryQuantity
barcode
inventoryPolicy
taxable
createdAt
updatedAt
image {
id
originalSrc
transformedSrc
}
selectedOptions {
name
value
optionValue {
id
}
}
inventoryItem {
id
tracked
requiresShipping
measurement {
id
weight {
unit
value
}
}
inventoryLevels(first: 200) {
edges {
node {
id
quantities(names: [“available”]) {
name
quantity
}
updatedAt
location {
id
fulfillmentService {
handle
serviceName
}
}
}
}
}
}
}
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
},

  options {
    id
    name
    position
    values
  }
}

}
}↵"
operationName: null
variables: “{
“ids” :[
“gid://shopify/Product/8373570568391”,
“gid://shopify/Product/8373570601159”,
“gid://shopify/Product/8373570699463”,
“gid://shopify/Product/8373570764999”,
“gid://shopify/Product/8373570797767”,
“gid://shopify/Product/8373570830535”,
“gid://shopify/Product/8373570863303”,
“gid://shopify/Product/8373570896071”,
“gid://shopify/Product/8373570928839”,
“gid://shopify/Product/8373570961607”,
“gid://shopify/Product/8373570994375”,
“gid://shopify/Product/8373571027143”,
“gid://shopify/Product/8373571059911”,
“gid://shopify/Product/8373571092679”,
“gid://shopify/Product/8373571158215”,
“gid://shopify/Product/8373571190983”,
“gid://shopify/Product/8373571322055”,
“gid://shopify/Product/8373571387591”,
“gid://shopify/Product/8373571518663”,
“gid://shopify/Product/8373571551431”,
“gid://shopify/Product/8373571682503”,
“gid://shopify/Product/8373571715271”,
“gid://shopify/Product/8373571748039”,
“gid://shopify/Product/8373571813575”,
“gid://shopify/Product/8373571846343”,
“gid://shopify/Product/8373571944647”,
“gid://shopify/Product/8373571977415”,
“gid://shopify/Product/8373572010183”,
“gid://shopify/Product/8373572042951”,
“gid://shopify/Product/8373572108487”,
“gid://shopify/Product/8373572174023”,
“gid://shopify/Product/8373572239559”,
“gid://shopify/Product/8373572272327”,
“gid://shopify/Product/8373572305095”,
“gid://shopify/Product/8373572370631”,
“gid://shopify/Product/8373572403399”,
“gid://shopify/Product/8373572468935”,
“gid://shopify/Product/8373572501703”,
“gid://shopify/Product/8373572567239”,
“gid://shopify/Product/8373572600007”,
“gid://shopify/Product/8373572632775”,
“gid://shopify/Product/8373572665543”,
“gid://shopify/Product/8373572698311”,
“gid://shopify/Product/8373572731079”,
“gid://shopify/Product/8373572763847”,
“gid://shopify/Product/8373572796615”,
“gid://shopify/Product/8373572829383”,
“gid://shopify/Product/8373572862151”,
“gid://shopify/Product/8373572894919”,
“gid://shopify/Product/8373572927687”,
“gid://shopify/Product/8373572960455”,
“gid://shopify/Product/8373573025991”,
“gid://shopify/Product/8373573189831”,
“gid://shopify/Product/8373695512775”,
“gid://shopify/Product/8373695643847”,
“gid://shopify/Product/8373695873223”,
“gid://shopify/Product/8373696135367”,
“gid://shopify/Product/8373696397511”,
“gid://shopify/Product/8374712172743”,
“gid://shopify/Product/8374714171591”,
“gid://shopify/Product/8374732914887”,
“gid://shopify/Product/8374743957703”,
“gid://shopify/Product/8374748414151”,
“gid://shopify/Product/8374796320967”,
“gid://shopify/Product/8374798942407”,
“gid://shopify/Product/8374804644039”,
“gid://shopify/Product/8374808871111”,
“gid://shopify/Product/8374811721927”,
“gid://shopify/Product/8374813458631”,
“gid://shopify/Product/8374813491399”,
“gid://shopify/Product/8374816997575”,
“gid://shopify/Product/8374827024583”,
“gid://shopify/Product/8374837018823”,
“gid://shopify/Product/8374840524999”,
“gid://shopify/Product/8374848815303”,
“gid://shopify/Product/8374866116807”,
“gid://shopify/Product/8374866149575”,
“gid://shopify/Product/8374881321159”,
“gid://shopify/Product/8374886138055”,
“gid://shopify/Product/8374892658887”,
“gid://shopify/Product/8374904979655”,
“gid://shopify/Product/8374908551367”,
“gid://shopify/Product/8374910746823”,
“gid://shopify/Product/8374912024775”,
“gid://shopify/Product/8374914416839”,
“gid://shopify/Product/8374915989703”,
“gid://shopify/Product/8374919397575”,
“gid://shopify/Product/8374921724103”,
“gid://shopify/Product/8374925525191”,
“gid://shopify/Product/8374933258439”,
“gid://shopify/Product/8374938927303”,
“gid://shopify/Product/8374945415367”,
“gid://shopify/Product/8374969303239”,
“gid://shopify/Product/8374975463623”,
“gid://shopify/Product/8374987391175”,
“gid://shopify/Product/8374991814855”,
“gid://shopify/Product/8375006363847”,
“gid://shopify/Product/8375023108295”
]
}”

Response Headers

Date: Wed, 28 Jan 2026 11:02:45 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
x-sorting-hat-shopid: 69772902599
x-stats-apiclientid: 5045527
x-stats-apipermissionid: 571035254983
x-request-id: 2c488d49-71b3-42a1-9930-5f6782df0c34-1769598118
x-content-type-options: nosniff
x-download-options: noopen
x-permitted-cross-domain-policies: none
x-xss-protection: 1; mode=block

Response Body

{"errors":"Internal Server Error"}

Hey @Himanshu_Sahu - pulled the logs for that request ID.

The query structure is the problem. 98 products x 100 variants x 200 inventory levels = potentially millions of records to fetch in one request and it’s timing out as a result.

Bulk operations are the way to go here - same query, but runs asynchronously so no timeout. If that doesn’t work for your use case, batch to 10-15 products per request and drop the first: 200 on inventory levels (most stores don’t have that many locations anyway).