A space to discuss GraphQL queries, mutations, troubleshooting, throttling, and best practices.
Hello, fellow devs! I'm working on GraphQL Admin API Rate Limit, and the documentation mentions as below:
All requests that are made after the limit has been exceeded are throttled and an {errors: [{ message: "Throttled" }]} error is returned.
Does any of you could share an example response from the request that was throttled? It's hard for me to exceed the limits as our dev stores do not have enough data (i.e., orders or customers). I'm especially looking for a response body, and status code returned in case of exceeding API limits.
Solved! Go to the solution
This is an accepted solution.
Here is an example of a throttled request:
{ "errors":[ { "message":"Throttled" } ], "extensions":{ "cost":{ "requestedQueryCost":202, "actualQueryCost":null, "throttleStatus":{ "maximumAvailable":1000.0, "currentlyAvailable":118, "restoreRate":50.0 } } } }
The status code returned on throttled request should be 429.
For sure it's 429 for Admin REST API, but the documentation doesn't mention if it's true for GraphQL API too. Thanks anyway @AddisonApps 🙂
This is an accepted solution.
Here is an example of a throttled request:
{ "errors":[ { "message":"Throttled" } ], "extensions":{ "cost":{ "requestedQueryCost":202, "actualQueryCost":null, "throttleStatus":{ "maximumAvailable":1000.0, "currentlyAvailable":118, "restoreRate":50.0 } } } }
I am having a throttled error when attempting to add photos to products. Please help.
Is the "extensions" object indeed outside of "errors"? The documentation makes it looks like it should be within the error object. Can you confirm or have the documentation updated? Thanks
https://shopify.dev/api/admin-graphql#status_and_error_codes
Its definitely outside the documentation is wrong.
I forced an error with a query and this is the result, "errors", "data", and "extensions" are all on the top level, though if you have gotten a throttle there wont be "data" just "errors" and " extensions"
{
"errors": [
{
"message": "first cannot exceed 250. To query larger amounts of data with fewer limits, bulk operations should be used instead.\nSee https://shopify.dev/api/usage/bulk-operations/queries for usage details.\n",
"locations": [
{
"line": 2,
"column": 17
}
],
"path": [
"productVariants"
]
}
],
"data": null,
"extensions": {
"cost": {
"requestedQueryCost": 46,
"actualQueryCost": 2,
"throttleStatus": {
"maximumAvailable": 20000,
"currentlyAvailable": 19998,
"restoreRate": 1000
}
}
}
}
Cheers,
Gary