We have started encountering the following error for our GraphQL requests since this morning (around 2026-04-16 12:00:00 UTC):
“The parent ‘node’ field for a nested connection must return a type that implements the ‘Node’ interface. Invalid connections: agreements.”
These queries were working as expected until now, and there haven’t been any changes on our side. The issue also doesn’t seem to affect all Shopify stores, and only some of them.
Has anyone else faced a similar issue, or have any insights on what might be causing this?
Query:
{
shop {
name
id
orders(query: "((created_at:>='2026-04-16T01:14:23+01:00' AND created_at:<='2026-04-16T03:30:58+01:00'))") {
edges {
node {
id
agreements {
edges {
node {
id
reason
happenedAt
app {
id
title
}
sales {
edges {
node {
id
}
}
}
}
}
}
}
}
}
}
}
Our team is experiencing the exact same failure when attempting to run a bulkOperationRunQuery that includes the agreements field.
but unike the OP mentioned, for us the query works perfectly fine when executed as a regular (non-bulk) GraphQL query. It only fails when wrapped in a bulkOperationRunQuery.
Thank you. We are also using bulk operations for this. Missed to mention this in the post.
I tried running the same query using synchronous (non-bulk) requests, and it seems to work fine in that case. But, this approach may not be suitable when dealing with a large number of objects. Bulk operations would be better for this.
Hi all, thanks for reporting this! A recent change to bulk operations validation is now rejecting queries where nested connections use types that don’t implement the Node interface, and the agreements connection falls into that category.
Previously these bulk queries were accepted and worked in most cases, even though the agreement types didn’t meet the Node interface requirement for bulk ops. The stricter validation now catches this upfront and rejects the query at submission time, which is why you’re seeing the error across all stores.
As a temporary workaround, synchronous (non-bulk) GraphQL queries for the same orders > agreements > sales data still work fine. I understand this is not ideal for large datasets, but it is functional in the meantime.
I’ve raised the impact of this change with the relevant team internally. I’ll update this thread when I have more information. Thanks again for flagging!
Same issue on our end. Bulk operations started failing at 2026-04-16 02:30 UTC (12:30 AEST) with the same agreements error. Same query works fine as a standard GraphQL request, only breaks in bulkOperationRunQuery.
It has to be reverted (or perhaps properly fixed, even, by adding the Node interface to SalesAgreements). It’s not realistic to have to synchronize agreements one-by-one for possibly tens/hundreds of thousands of orders. It’s physically impossible.
Hi all, thanks for your patience on this. We reverted the on-submission validation change on our end and that revert is in the process of deploying. You should see recovery soon if not already.
Thanks for reverting this, is there any plan on your side to make the SalesAgreement implement the Node interface?
This would resolve some other issues like this one :