Shopify Debug Bundle
Overview
Collect all diagnostic information needed for Shopify support tickets: API version compatibility, access scopes, rate limit state, recent errors, and connectivity checks.
Prerequisites
- Shopify access token (
shpat_xxx) available curlandjqinstalled- Store domain known (
*.myshopify.com)
Instructions
Step 1: Create and Run Debug Bundle
The debug bundle script collects shop info, access scopes, supported API versions, GraphQL and REST rate limit state, environment details (Node/npm versions, SDK version, env vars), then packages everything into a tarball with tokens automatically redacted.
See Debug Bundle Script for the complete bash script.
Set these environment variables before running:
export SHOPIFY_STORE="your-store.myshopify.com"
export SHOPIFY_ACCESS_TOKEN="shpat_xxx"
export SHOPIFY_API_VERSION="2025-04" # Update quarterly — see shopify.dev/docs/api/usage/versioning
Output
shopify-debug-YYYYMMDD-HHMMSS.tar.gzcontaining:summary.txt— shop info, scopes, API versions, rate limits, environment- All secrets automatically redacted
Error Handling
| Diagnostic | What It Reveals | If It Fails | |-----------|----------------|-------------| | Shop info | Store name, plan, timezone | Token invalid or store unreachable | | Access scopes | What your app can access | Token expired or revoked | | API versions | Which versions the store supports | Network issue | | Rate limit state | Current bucket fill level | Token or network issue | | SDK version | Whether SDK needs updating | Package not installed |
Examples
Sensitive Data Checklist
ALWAYS REDACT before sharing:
- Access tokens (
shpat_xxx) - API keys and secrets
- Customer PII (emails, names, addresses)
- Order details with customer data
Safe to include:
- Store name and plan
- API version and scopes
- Error messages and X-Request-Id values
- Rate limit headers
- SDK/runtime versions
Quick One-Liner Health Check
curl -sf -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \
"https://$SHOPIFY_STORE/admin/api/2025-04/shop.json" \
| jq '{name: .shop.name, plan: .shop.plan_name}' \
&& echo "HEALTHY" || echo "UNHEALTHY"