API & Webhook重要度: 高 (HIGH)
HTTP 429: Too Many Requests (Rate Limit Exceeded)Shopify API レートリミット制限 (429エラー) の原因と自動リトライ設計
大量の在庫同期バッチ実行時や、フラッシュセール時に注文データを一括取得しようとした際に発生。
エラー根本原因 & クイック解決サマリー
レスポンスヘッダー『Retry-After』を参照し、指定された秒数だけ処理を非同期待機(Sleep)させる。
指数バックオフ(Exponential Backoff with Jitter)を用いた自動リトライロジックを実装する。
REST APIからGraphQL Admin APIへ移行し、Bulk Operations APIを用いて大量データを一括処理する。
📋 主要スペック & 決定ファクトシート
- エラーコード
- HTTP 429
- 重要度レベル
- 高 (HIGH)
- 推奨解決コード
- TYPESCRIPT
根本原因(Root Cause)
Shopify REST API(40リクエスト/秒のリーキーバケット)または GraphQL Admin API(計算コスト上限)を超過したためサーバーから一時的にリクエストが遮断されている。
放置した場合のビジネス影響
在庫同期が中断し、実店舗や他モールとの『売り違い(欠品キャンセル)』や注文情報の取りこぼしが発生します。
推奨解決コード実装例(TYPESCRIPT)
Retry-Afterヘッダーを最優先し、ランダムなJitterを加えることで複数スレッドの同時再衝突を防ぎます。
❌ アンチパターン(エラーが発生する実装)
// ❌ 単純なループで全件連続リクエスト(即座に429エラーが発生)
for (const item of items) {
await fetch(`/admin/api/2026-01/inventory_levels/set.json`, { ... });
}✔ 正しい修正コード(推奨実装)
// 指数バックオフ付き自動リトライ関数
async function fetchWithRetry(url: string, options: RequestInit, retries = 5, delay = 1000): Promise<Response> {
try {
const res = await fetch(url, options);
if (res.status === 429 && retries > 0) {
const retryAfter = Number(res.headers.get("Retry-After")) || (delay / 1000);
const waitTime = (retryAfter * 1000) + Math.random() * 500; // Jitter
console.warn(`[Rate Limited] Waiting ${waitTime}ms before retry. Retries left: ${retries}`);
await new Promise((resolve) => setTimeout(resolve, waitTime));
return fetchWithRetry(url, options, retries - 1, delay * 2);
}
return res;
} catch (err) {
if (retries <= 0) throw err;
await new Promise((resolve) => setTimeout(resolve, delay));
return fetchWithRetry(url, options, retries - 1, delay * 2);
}
}エラー対応に関するFAQ
QShopify Plusにするとレートリミット上限は増えますか?
はい、Shopify Plusストアでは標準プランに比べてAPIレートリミットが2倍(REST: 80リクエスト/秒、GraphQLコスト上限2倍)に拡張されます。
他の技術エラー逆引きガイド
E-E-A-T 技術検証・執筆基準
Shopify Plus Partner 監修本ページの情報は、国内200社以上のShopify公開開発実績およびShopify公式技術ドキュメント(2026 Edition)に基づき、Shopifyエラー・APIトラブルシューティングの実装実務経験を持つシニアShopifyアーキテクトが検証・執筆しています。
最終検証更新
2026年3月完全無料・登録不要ですぐに算出
技術トラブルの解決・リファクタリングを1分で試算
APIレートリミット対策、Webhook耐障害性の向上、Functions開発の工数・費用を即座に出力できます。