I am using GraphQL to retrieve a list of fulfillments. It was working fine, but this Internal Server Error issue has been persistent since yesterday.
Based on our logs, the request has been failing for almost 24 hours, and it is being executed every 15 minutes. I also tested the same request using Postman, and the result is inconsistent, sometimes it works, and sometimes it fails.
At the moment, I am able to retrieve the fulfillments again, but the error is still occurring frequently.
How should this be addressed? Is Shopify currently performing any updates or experiencing any issues that could cause this behavior?
So far, this issue is only happening for one particular client and is not occurring for our other clients using the same integration.
Since the same query works for your other clients and the failures are limited to a single store this doesn’t appear to be an issue with your GraphQL query itself.
An intermittent INTERNAL_SERVER_ERROR usually points to a temporary backend issue rather than a problem with your request. I’d recommend implementing retry logic for these responses and checking the Shopify Status page for any ongoing incidents.
If the issue continues contact Shopify Support and provide the affected store details along with the request ID if available. They can review the backend logs to determine what’s causing the intermittent failures for that specific store.
It does not seem like a rate limit or a query problem, given that your other queries are able to work on your other stores, except for one, which is experiencing occasional failure. There are a number of things you could try out:
Implementing a retry policy with exponential back-off upon receiving an INTERNAL_SERVER_ERROR response.
Testing with a limited result set in order to see if it is a certain record that is causing the problem.
Capturing the X-Request-ID from the failing requests.
Should you continue experiencing problems, I would suggest reaching out to the Shopify Support team along with the affected store, timestamp, and X-Request-ID values.
thanks for the response. I have contacted support team and they did ask for X-Request-ID. I gave them 3. currently, I am still waiting for there response.
The Shopify developer already replied, and I did not expect that we would need to make adjustments on our application side. Their suggestion is to reduce our limit from 250 to 50, remove includeClosed: true, and use pagination.
Based on their response, it can be inferred that they are using MySQL on their backend. I am already implementing pagination, and I do not think reducing the limit from 250 to 50 will make any significant difference since I have scenarios where I need to fetch updated fulfillment in a specific dates.
From my perspective, this should be a simple query:
SELECT *
FROM fulfillments
WHERE updatedAt >= yesterday
ORDER BY updatedAt DESC;
However, somehow this appears to be a difficult operation on Shopify’s side.
For now, the solution I see is to maintain a local copy of the Shopify fulfillment data that we need. This way, we can simply query our own table:
SELECT *
FROM MyFulfillmentTable
WHERE updatedAt >= yesterday
ORDER BY updatedAt DESC;
This would give us more reliable and predictable performance without depending on Shopify’s query limitations.