Error Codes
Error responses from Driple and how to handle them.
Driple Errors
These errors originate from the Driple proxy itself (not Shopify).
401 — Unauthorized
{
"error": "unauthorized",
"message": "Missing X-Driple-Api-Key header",
"docs": "https://driple.dev/docs/auth"
}Cause: No X-Driple-Api-Key header in the request.
Fix: Add the header to every request.
403 — Forbidden
{
"error": "forbidden",
"message": "Invalid API key"
}Cause: The API key doesn't exist or is malformed.
Fix: Check your key in the dashboard.
{
"error": "forbidden",
"message": "API key not authorized for store: my-store"
}Cause: Your key is restricted to specific stores, and this store isn't in the list.
Fix: Contact support to add the store to your key, or use a wildcard key.
404 — Invalid Route
{
"error": "Invalid route",
"message": "Expected: /shopify/{store-name}/admin/api/{version}/{resource}",
"docs": "https://driple.dev/docs"
}Cause: The URL path doesn't match the expected format.
Fix: Ensure your URL follows https://api.driple.dev/shopify/{store}/admin/api/{version}/{resource}.json
429 — Plan Limit Exceeded
{
"error": "plan_limit_exceeded",
"message": "Monthly request limit of 1,000 reached for \"free\" plan. Upgrade at https://driple.dev/pricing",
"usage": 1000,
"limit": 1000
}Cause: You've hit your plan's monthly request limit.
Fix: Upgrade your plan at driple.dev/pricing.
Response includes:
X-Driple-Usageheader: current countX-Driple-Limitheader: plan limit
502 — Proxy Error
{
"error": "proxy_error",
"message": "Failed to fetch from Shopify"
}Cause: Driple couldn't reach Shopify's API. This is usually transient.
Fix: Retry the request. If persistent, check Shopify's status page.
Shopify Errors
Shopify's own error responses (4xx/5xx) are passed through transparently. Driple does not modify Shopify's error bodies. Common ones:
| Status | Meaning | Notes |
|---|---|---|
401 | Invalid Shopify access token | Check your X-Shopify-Access-Token |
403 | Missing API scope | Your app needs the relevant permission |
404 | Resource not found | Check store name, API version, resource path |
422 | Validation error | Check request body format |
429 | Rate limited | You shouldn't see this — Driple handles it. If you do, report it. |
5xx | Shopify server error | Transient — retry with backoff |
If you see a 429 from Shopify through Driple, it means the rate limiter didn't catch it. Please report this — it helps us improve the proxy.