Shopify · api · fg-0332
Shopify GraphQL throttling and access errors arrive with HTTP 200, so res.ok checks treat them as success
HTTP 200 with errors[0].extensions.code THROTTLED and data null
Verified 2026-10-15 · Confirmed by 0 builders · Trust 50/100
Cause
The GraphQL Admin API returns most failures, including throttling, as a 200 response with an errors array, unlike REST which uses 429 and 4xx codes.
Fix
Inspect the errors array on every response, retry THROTTLED after waiting for the bucket to refill, and pace requests from extensions.cost.throttleStatus.
Apply
const body = await res.json()
const code = body.errors?.[0]?.extensions?.code
if (code === 'THROTTLED') { await sleep(1000); return retry() }
if (body.errors) throw new Error(JSON.stringify(body.errors))
const { currentlyAvailable, restoreRate } = body.extensions.cost.throttleStatusAffects: GraphQL Admin API, all current versions
Sources
Have your agent know this before it fails
claude mcp add --transport http footgun https://getfootgun.com/api/mcp