As of API Version 2026-01, we've enhanced bulk operations to be faster and more reliable by restructuring the output.
What's Changed
The following are part of this change.
Bulk Queries (bulkOperationRunQuery
)
The groupObjects
argument now defaults to false
. This change returns results in a flat structure, which processes faster and reduces the likelihood of timeouts. Previously, grouping objects could slow down operations and increase failure rates, especially with large datasets.
Bulk Mutations (bulkOperationRunMutation
)
The groupObjects
argument has been removed. Results now always match the order of your input rows, simplifying the correlation between responses and your original data.
What You Need to Do
The following outlines what you need to do, depending on your needs.
If You're Running Bulk Queries
-
If you rely on grouped output: Set
groupObjects: true
to maintain the nested structure.
mutation {
bulkOperationRunQuery(
query: """
{
products {
edges {
node {
id
title
}
}
}
}
"""
groupObjects: true # Add this to maintain grouped output
) {
bulkOperation {
id
status
}
userErrors {
field
message
}
}
}
- If you don't need grouped output: No changes are required. Your queries will run faster by default.
If You're Running Bulk Mutations
If you were using
groupObjects: true
: Remove the argument from your mutation call. Results will be returned in the same order as your input file.If you weren't using
groupObjects
: No changes are needed. Your mutations will continue to work as before, with improved reliability.
Why We Made This Change
Most apps don't require grouped output, and the overhead was causing performance issues. These changes provide faster, more predictable results that are easier to process at scale.
For bulk queries, enable groupObjects
only if you need nested output. For bulk mutations, having results match your input order simplifies tracking which operations succeeded or failed.