We have seen that sometimes when fetching the filtered products from collections that belong to a product we get the products not matching the filters and resulting in big response sizes that have causing us crashes. Normally this requests returns around 60KB.
Here is a request ID with a response payload a bit over 2MB (uncompressed) in size:
f585ff3d-fa9d-4f09-9a18-9762873543d1-1779142289
Another with smaller response payload size but with the same problem:
049b441d-df5e-4585-bdd2-69960e5a2c04-1779142882
We have seen this happen more in days with high user count and mostly with parallel requests.
If needed we can provide the full response to the first request.
Also some normal request ids of what the usual response is:
311cc35e-e4b4-470b-8ae9-a88aebbec8ec-1779144182
45c3f1d4-4e6e-4e60-a315-46216fcba7e4-1779144274
The query for the first response:
Request
{
"operationName": "GetProductIDsByProductWithCommonCollectionsAndFilters",
"variables": {
"productID": "gid://shopify/Product/10407329136967",
"collectionsCount": 20,
"productsCount": 250,
"productFilters": [
{
"available": true
},
{
"price": {
"min": 0.0,
"max": 1.7976931348623157E308
}
},
{
"productMetafield": {
"namespace": "custom",
"key": "refdesign",
"value": "ZKGAP0704_26009"
}
}
],
"metafieldsIdentifiers": [
{
"namespace": "app--870449153",
"key": "no_buy"
},
{
"namespace": "app--870449153",
"key": "discount_info"
},
{
"namespace": "custom",
"key": "refdesign"
},
{
"namespace": "custom",
"key": "badges"
},
{
"namespace": "custom",
"key": "colorswatches"
},
{
"namespace": "custom",
"key": "refdesign"
}
],
"referencesCount": 0,
"country": "PT",
"language": "PT_PT",
"visitorConsent": {
"preferences": true,
"analytics": true,
"marketing": false,
"saleOfData": false
}
},
"query": "query GetProductIDsByProductWithCommonCollectionsAndFilters($productID: ID!, $collectionsCount: Int!, $productsCount: Int!, $productFilters: [ProductFilter!], $imageTransformInput: ImageTransformInput, $metafieldsIdentifiers: [HasMetafieldsIdentifier!]!, $referencesCount: Int!, $sortKey: ProductCollectionSortKeys, $reverse: Boolean, $country: CountryCode, $language: LanguageCode, $buyer: BuyerInput, $visitorConsent: VisitorConsent) @inContext(country: $country, language: $language, buyer: $buyer, visitorConsent: $visitorConsent) { product(id: $productID) { collections(first: $collectionsCount) { nodes { id products(first: $productsCount, filters: $productFilters, sortKey: $sortKey, reverse: $reverse) { nodes { __typename id availableForSale ...MetafieldsDetailsWithNonNestedMetaObjects } } } } } } fragment BaseImage on Image { url(transform: $imageTransformInput) width height altText thumbhash } fragment MediaReference on Media { __typename ... on MediaImage { id alt mediaContentType previewImage { __typename ...BaseImage } image { __typename ...BaseImage } } ... on Video { id alt mediaContentType sources { format height width mimeType url } previewImage { __typename ...BaseImage } } } fragment PageReference on Page { body bodySummary onlineStoreUrl title } fragment CollectionReference on Collection { id } fragment ProductReference on Product { id } fragment ProductVariantReference on ProductVariant { id } fragment GenericFileReference on GenericFile { id url mimeType previewImage { __typename ...BaseImage } } fragment BaseMetaobjectReference on Metaobject { id handle fields { key type value } type updatedAt } fragment MetaObjectFieldLimitedReferences on MetaobjectField { reference { __typename ...MediaReference ...PageReference ...CollectionReference ...ProductReference ...ProductVariantReference ...GenericFileReference ...BaseMetaobjectReference } references(first: $referencesCount) { nodes { __typename ...MediaReference ...PageReference ...CollectionReference ...ProductReference ...ProductVariantReference ...GenericFileReference ...BaseMetaobjectReference } } } fragment MetaobjectLimitedReference on Metaobject { id handle fields { __typename key type value ...MetaObjectFieldLimitedReferences } type updatedAt } fragment MetaobjectFieldMetaobjectReference on Metaobject { __typename ...BaseMetaobjectReference fields { reference { __typename ...MediaReference ...PageReference ...CollectionReference ...ProductReference ...ProductVariantReference ...GenericFileReference ... on Metaobject { __typename ...MetaobjectLimitedReference } } references(first: $referencesCount) { nodes { __typename ...MediaReference ...PageReference ...CollectionReference ...ProductReference ...ProductVariantReference ...GenericFileReference ...BaseMetaobjectReference ... on Metaobject { __typename ...MetaobjectLimitedReference } } } } } fragment MetafieldsDetailsWithNonNestedMetaObjects on HasMetafields { metafields(identifiers: $metafieldsIdentifiers) { namespace type key value reference { __typename ...MediaReference ...PageReference ...CollectionReference ...ProductReference ...ProductVariantReference ...GenericFileReference ...MetaobjectFieldMetaobjectReference } references(first: $referencesCount) { nodes { __typename ...MediaReference ...PageReference ...CollectionReference ...ProductReference ...ProductVariantReference ...GenericFileReference ...MetaobjectFieldMetaobjectReference } } } }",
"extensions": {
"clientLibrary": {
"name": "apollo-kotlin",
"version": "4.4.3"
}
}
}
Hi @Tiago_Lima
What API version are you using?
We have seen this happen in 2025-01, 2025-10 and 2026-07, its the versions we used, it could happen in others.
Hey @Tiago_Lima Thanks for the request IDs, those were helpful.
I was able to compare the affected request with one of the normal examples you shared. The query and variables appear to line up, but the affected request returned a much larger response, which matches the behavior you described where the collection product filters do not seem to be applied consistently.
I’ve raised this with the relevant team internally for further investigation. I’ll update this thread once I hear back from them.
If you catch any more examples in the meantime, especially an affected request ID and a normal request ID from the same query close together in time, please add them here!
Hey @Donal-Shopify
We wrote a small java tool to recreate the issue, because at first we thought it was something related to the Http Client we used, but we were able to replicate the issue in 3 different client, although we are be able to replicate the issue way easier on OkHttp.
All the following requests were made on the same machine and about the same time, the first ones came ok but the size started increasing. It went from 14.27 kb to 2941.52 kb.
Normal response sizes:
0b074254-1b5c-4c46-9c07-93770ea32a44-1779195621
42c3fc9e-d47c-40d4-8fb9-b42fe37ad362-1779195621
5bc575ff-d8b8-486c-8e3c-d5d2047ed831-1779195621
ae6d548c-c0a9-4f08-9a2e-e59836e94a22-1779195621
18b98d07-7c43-4fb1-91d1-10bb22b59f6f-1779195621
07d0c929-d7a1-47d1-b765-02e403e0629a-1779195621
ae6bae17-3a6c-4968-9992-a01764b0da4f-1779195621
fa6d99fd-43ea-486a-9f0a-3938750f8b2a-1779195621
Issue started happening:
b8cfcebc-7632-45b0-93b6-412e052112a5-1779195621
b8266473-ebf7-48a8-b869-b2943cc936b9-1779195621
1d05d04d-d3d3-4790-ba0b-eb8e0d504596-1779195621
4ba5a25c-e9d6-405b-ad9f-45a5b207dd8f-1779195621
6bb045e7-3a25-4712-b284-81b2b380d2f1-1779195621
8d09866c-0d39-4c71-85dd-2acc8802a34d-1779195622
315283f8-5235-4fe6-8180-4bdf65c49db7-1779195621
591db822-008a-47d2-a54b-22f949cca222-1779195621
a2fd0aab-7a78-4f41-aa4c-84d2aa7f97b7-1779195621
d4fd443e-0730-4197-a0c7-f341adc7f8dd-1779195622
5a8660e6-e12b-456b-8fdb-ae8632efc270-1779195622
e68d426b-c57a-42a0-9495-41db704e9d03-1779195622
67c52cdc-bfce-48b8-b8d4-cd83244d5e39-1779195621
56e19976-ed12-47ff-92b9-3fb05000e5ce-1779195621
bd1d823f-7144-4955-bb65-c3b6d639ec2c-1779195622
2f1f72db-ea3e-452c-8014-5ff5d083879f-1779195622
f89fcdd0-bc0e-4f43-9ea5-219d5d667f79-1779195622
dc26dec1-f747-42b6-849a-36d58cbd03d7-1779195622
64fb457a-4722-4b3a-ba52-fcf7430fda05-1779195621
90995bf2-5432-4f50-9d12-56e7e6225aac-1779195621
df860fe1-5219-4029-ade1-949a44a6e51d-1779195622
d72bd341-c594-4434-9aa8-5852c8ab86e6-1779195623
26af757d-e7e3-4e97-8112-25ec296de6fe-1779195623
7fc5f3e1-1b55-4dec-a079-1205eb8e1fea-1779195624
07761b5b-e1e4-4ed7-9061-1470fbf1fd01-1779195624
19dc504d-6527-4eb9-a611-18e5f1268a5d-1779195624
abbc6174-6961-43c9-aea8-5edef4b9f01e-1779195624
d54defc8-7cdd-4f45-af38-96ca5325a993-1779195624
c4e1e359-0cf5-4222-9397-28b6c10d5053-1779195624
a071f157-dd33-4699-86e1-9e359ccf822e-1779195624
f0580d95-04fd-439e-ac07-f1b4975ac880-1779195624
90405e33-b519-467a-9cc0-7dd2cd6fb53d-1779195624
Appreciate those additional IDs @Tiago_Lima! The team looking at this made an adjustment on our side for the affected shop while they review the underlying behavior.
Could you monitor the query and let me know if you still see the larger responses? If it happens again, send a fresh affected request ID and a nearby successful request ID from the same batch so we can compare them. Thanks again!
Hey @Donal-Shopify, thanks for the swift update!
We are still running tests, but it was really easy to catch the issue before and so far we have not catch it.
I will update you again if we catch the issue.
Hey @Donal-Shopify,
We run the tests for some hours and we were not able to replicate the issue that used to take a few minutes to replicate.
I believe the fix worked.
@Donal-Shopify
We’re seeing this occurring too. For example, for the following Storefront API query:
{
"query": "query FilteredProducts($handle: String!, $filters: [ProductFilter!]!, $cursor: String) @inContext(country: CA) { collection(handle: $handle) { products(first: 250, after: $cursor, filters: $filters) { edges { cursor node { id } } pageInfo { hasNextPage endCursor } } } }",
"variables": {
"handle": "all",
"filters": [
{ "productVendor": "Jesse Kamm" }
],
"cursor": null
}
}
When made on it’s own, we return the correct products (10). When made in parallel with another Storefront API call, we return incorrectly filtered products (250).
Request IDs:
Correct & non-async
ea97b11f-51ae-408b-8964-9a7eaca69817-1779459352
Incorrect & async
6b3cfaf6-22c3-4aab-8d2b-0c1f477b9ebf-1779459496
Hi @Donal-Shopify, any update on this?
Hey @BeefyNachos, apologies for the delay here - I’ve not had much time in the Dev community lately.
If this issue persists for you, could you share some more recent example x-request-ids?
For issues affecting specific shops we recommend reaching out to support via https://help.shopify.com/en but I’ll be happy to take a look here too!