{"record":{"id":"dbf33daf0ccef3b5","repo":"gatsbyjs/gatsby","slug":"response-statustext-dbf33d","errorCode":null,"errorMessage":"${response.statusText}","messagePattern":"\\$\\{response\\.statusText\\}","errorType":"http","errorClass":"HttpError","httpStatus":null,"severity":"error","filePath":"packages/gatsby-source-shopify/src/clients.ts","lineNumber":38,"sourceCode":"      method: `POST`,\n      headers: {\n        \"Content-Type\": `application/json`,\n        \"X-Shopify-Access-Token\": options.password,\n      },\n      body: JSON.stringify({\n        query,\n        variables,\n      }),\n    })\n\n    if (!response.ok) {\n      const waitTime = 2 ** (retries + 1) + 500\n      if (response.status >= 500 && waitTime < MAX_BACKOFF_MILLISECONDS) {\n        await new Promise(resolve => setTimeout(resolve, waitTime))\n        return graphqlFetch(query, variables, retries + 1)\n      }\n\n      throw new HttpError(response)\n    }\n\n    const json = await response.json()\n    return json.data as T\n  }\n\n  return { request: graphqlFetch }\n}\n\nexport function createRestClient(options: IShopifyPluginOptions): IRestClient {\n  const baseUrl = `https://${options.storeUrl}/admin/api/${options.apiVersion}`\n\n  async function shopifyFetch(\n    path: string,\n    fetchOptions = {\n      headers: {\n        \"X-Shopify-Access-Token\": options.password,\n      },","sourceCodeStart":20,"sourceCodeEnd":56,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/e85d62f1779e353eaac1753211629a26d123e26c/packages/gatsby-source-shopify/src/clients.ts#L20-L56","documentation":"graphqlFetch throws HttpError when the Shopify Admin API response is not ok and not retryable (status < 500 or backoff cap exceeded). 5xx responses are retried with exponential backoff first; this throw means a persistent client-side HTTP failure such as auth or bad request.","triggerScenarios":"Thrown at packages/gatsby-source-shopify/src/clients.ts:38 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the Shopify access token and shop domain","Inspect response.statusText for the concrete failure","Reduce request rate if hitting Shopify throttling limits"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e85d62f1779e353eaac1753211629a26d123e26c","analyzedAt":"2026-08-26T17:50:09.662Z","contentChangedAt":"2026-08-26T17:50:09.662Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}