技能 编程开发 Shopify API错误诊断指南

Shopify API错误诊断指南

v20260423
shopify-common-errors
本指南旨在帮助开发者诊断和解决Shopify API集成过程中遇到的常见错误。它全面覆盖了HTTP状态码错误(如401、422、429)和GraphQL用户错误。通过识别错误类型、确定根本原因,并获取具体的修复步骤,确保API请求能够顺利完成。
获取技能
397 次下载
概览

Shopify Common Errors

Overview

Quick-reference guide for the most common Shopify API errors with real error messages, causes, and fixes.

Prerequisites

  • Shopify app with API credentials configured
  • Access to application logs or console output

Instructions

Step 1: Identify the Error Type

Check whether the error is an HTTP status code error or a GraphQL userErrors response.

Step 2: Match Error Below and Apply Fix


401 Unauthorized

Response: "[API] Invalid API key or access token (unrecognized login or wrong password)"

Causes: Access token expired (merchant uninstalled/reinstalled), wrong header, or using Storefront token for Admin API.

Fix: Verify token format (shpat_ + 32 hex chars) and test with a simple shop.json GET request.


403 Forbidden

Response: "This action requires merchant approval for read_orders scope."

Fix: Add the needed scope to shopify.app.toml under [access_scopes] and re-trigger OAuth.


404 Not Found

Causes: Wrong API version in URL, resource was deleted, or store domain is incorrect.

Fix: Verify the API version exists by checking /admin/api/versions.json.


422 Unprocessable Entity

Common triggers: Missing required fields, duplicate handle/slug, invalid metafield type, price format issues (must be string like "29.99"), invalid country/province codes.

Fix: Check the errors object or userErrors array for specific field-level messages.


429 Too Many Requests (Rate Limited)

REST returns 429 with Retry-After header. GraphQL returns 200 with THROTTLED error code in the body and zero currentlyAvailable points.

Fix: See shopify-rate-limits skill for complete backoff implementation.


GraphQL userErrors (200 with Errors)

Critical: Shopify returns HTTP 200 even when mutations fail. Always check userErrors after every mutation:

const result = response.data.productCreate;
if (result.userErrors.length > 0) {
  for (const err of result.userErrors) {
    console.error(`Field ${err.field?.join(".")}: ${err.message} (${err.code})`);
  }
  throw new Error("Shopify validation failed");
}

5xx Server Errors

Shopify internal errors -- not your fault. Retry with exponential backoff and capture the X-Request-Id header for support tickets.

Output

  • Error identified by HTTP status or GraphQL userErrors
  • Root cause determined
  • Fix applied and verified

Error Handling

Status Name Retryable Action
401 Unauthorized No Re-authenticate, verify token
403 Forbidden No Add missing scope, re-OAuth
404 Not Found No Check URL, API version, resource ID
422 Unprocessable No Fix validation errors in request body
429 Throttled Yes Backoff using Retry-After header
500 Server Error Yes Retry with backoff, report X-Request-Id
503 Unavailable Yes Shopify is overloaded, retry later

Examples

Quick Diagnostic Script

Run auth, scope, and API version checks in one pass.

See Diagnostic Script for the complete shell script.

Resources

信息
Category 编程开发
Name shopify-common-errors
版本 v20260423
大小 2.78KB
更新时间 2026-04-28
语言