1. Shipping zone missing for the customer's country or region
Shopify only shows rates for countries you've explicitly added to a shipping zone. If a customer is in a country you don't have a zone for, they see no rates at all and cannot complete checkout.
Common variations:
- New international expansion without adding the country to a zone
- Region within a country missing (especially US states or Canadian provinces)
- "Rest of World" zone never created
- Customer in a US territory (Puerto Rico, Guam) when only the 50 states are configured
2. No rate covers the customer's order
Even if the zone exists, your rates may not cover every order. Common gaps:
- Weight-based rates that stop at, say, 20kg — orders above that have no rate
- Price-based rates with brackets that don't continue to infinity
- Carrier-calculated rates that fail to return for unusual destinations
- Free shipping threshold set too high for the order
The fix is almost always to add a fallback rate that covers any order ("any weight" or "any price").
3. Product is on a shipping profile that excludes the customer
Shopify lets you assign products to shipping profiles with separate rules. Common issues:
- A product is in a "Heavy items" profile with limited zones, but the customer is in an excluded country
- Custom profile created for a product line, but rates not added for that customer's region
- Default profile updated, but custom profiles missed
If only some products in the customer's cart are blocking checkout, this is almost certainly the cause.
4. Carrier-calculated rates failing
If you use real-time rates from UPS, FedEx, USPS, or DHL:
- API credentials expired
- Carrier account suspended or in negative balance
- Address can't be rated (PO box, military address, ungeocodable)
- Package dimensions cause the carrier to reject the request
- Carrier API outage (check carrier's status page)
Symptoms: rates worked before, suddenly don't, often only for certain addresses or products.
5. Multi-origin / inventory location issue
Shopify routes orders to a fulfillment location based on Settings → Shipping and delivery → Order routing. Common issues:
- Order routes to a location that doesn't have stock
- "Closest location" routing sends orders to the wrong warehouse
- A location is paused but products are still assigned to it
- Different shipping profiles per location and the routing logic conflicts
6. 3PL or fulfillment app interfering
3PLs (ShipBob, ShipHero, ShipMonk) and fulfillment apps can override Shopify's native rates. Common issues:
- 3PL app pushed its own rates, overwriting Shopify's
- 3PL app failed to push rates, leaving Shopify with empty rates
- 3PL rates configured but margin/markup not applied
- 3PL location not synced as a Shopify location
7. Free shipping threshold misconfigured
Common issues:
- Threshold set in store currency but customer in different currency
- Free shipping rule excludes specific products that customer ordered
- Discount/coupon stacking conflict with free shipping
- App overriding free shipping rules silently
8. Shopify Shipping label not generating
If labels won't print:
- Shopify Shipping payment method missing or expired
- Carrier API outage (check your Shopify admin notifications)
- Address fails carrier validation (most common with international or PO boxes)
- Order has unusual configuration (digital + physical, drop-ship + warehouse, etc.)
9. Local delivery / local pickup not working
For storefronts using local delivery or pickup:
- Local delivery zone not added
- Product not enabled for local delivery (toggle on the product page)
- Local pickup location not set as a pickup location
- Customer's address falls outside the configured radius
10. Currency / Markets misconfiguration
If you sell in multiple currencies:
- Shipping rate set in wrong currency
- Markets-specific rates not configured for the customer's market
- DDP (delivered duty paid) not enabled where required
- Currency conversion makes rate appear wildly different