Shopify

Platform

Also known as: Shopify Security Rejection, Shopify 430

Uses the non-standard 430 for security rejections so that it stays distinguishable from 429 rate limiting, which is a genuinely useful separation.

Shopify's edge protects a very large number of independent storefronts, so its responses show up constantly in commerce integrations. Shopify made a deliberate and unusually helpful choice: it separated rate limiting from security rejection by giving them different status codes. 429 means you are going too fast. 430 means the security layer rejected the request.

430 is not a registered IANA status code. Shopify uses it for security rejection, and it is also documented elsewhere as Request Header Fields Too Large, so the number alone is ambiguous outside a Shopify context. Inside one, it is a clear signal.

Because the two codes mean different things, they call for different responses, and conflating them is the common failure. Backing off will eventually clear a 429. It will not clear a 430, because nothing about waiting changes what the security layer objected to.

How to identify it

Headers

Cookies

Status codes

430 Security rejection

Blocked. Observed behaviour.

Shopify's security layer rejected the request. Distinct from rate limiting, which Shopify signals with 429.

What triggers it

How to confirm it

What to do about it

HTTP/2 430
content-type: text/html; charset=utf-8
x-request-id: 1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d

429 Rate limited

Rate limited. Documented by the vendor.

Request rate exceeded. This is Shopify's rate limiting code, and it is the one that clears with patience.

What triggers it

How to confirm it

What to do about it

If you run a site behind it

If your traffic is being caught by it

Documentation

See also