Shipping rates not showing at checkout › Carrier-calculated rates

Shopify checkout diagnostics

Carrier-calculated shipping not showing at checkout

Live rates from a carrier or a shipping app are computed for every cart, by someone else's server, under a strict time limit. When they vanish, your settings have often not changed at all. Here is how Shopify handles that call, and what to put in place so that a failure does not cost you the order.

How live rates work

When a buyer reaches the shipping step, Shopify sends the cart and the address to the carrier service — a carrier account connected to Shopify, or an app such as a rate calculator. That service answers with rates. Shopify shows them. Every part of that chain can fail on its own, and Shopify's own documentation is precise about what happens then.

First: is your plan allowed to show these rates?

Shopify's built-in carrier rates work on all plans: for example USPS, DHL and UPS from a US location, Canada Post and Purolator from Canada, DPD UK, InPost UK and Royal Mail from the UK. Rates from your own carrier account or from an app are different. Shopify's Help Center lists third-party carrier-calculated shipping as included in Advanced and Plus. On Grow it is “available for an additional monthly fee, or included with annual billing”; the fee is added through Shopify Support. On all other plans: “Not available.” Shopify's troubleshooting guide asks you to check the same thing for rates that come from an app.

Shopify's developer documentation gives the matching rule for rate apps: an app's request to create a carrier service fails unless the store is on Advanced or higher, on the Shopify plan (now called Grow) with yearly billing or the paid add-on, or is a development store. If the store stops meeting these conditions, its association with the carrier service is deactivated. So a plan or billing change can remove live rates without anyone touching the shipping settings.

The rules that make rates disappear

A hard time limit

The carrier service must answer within a time budget that shrinks as traffic grows, according to Shopify's developer documentation:

Rate requests per minuteTime to answer
under 1,50010 seconds
1,500 to 3,0005 seconds
over 3,0003 seconds

So the busiest moment — a launch, a sale, a newsletter — is exactly when a slow rate service gets the least time.

No second chance

“There is no retry mechanism. The response must be successful on the first try.” A timeout or an error means no carrier rates for that cart.

Failures are cached, briefly

Shopify caches identical rate requests: 15 minutes after a success, 30 seconds after an error. A buyer who reloads right away may see the same empty result.

The carrier rejects the parcel or the address

Carriers apply their own rules: valid address, parcel dimensions and weight within their limits. A product with no weight, an oversized box, or an address the carrier cannot validate produces no rate, for that cart only — which is why it rarely shows up in your own tests.

Backup rates: on by default, but know what they charge

When all carrier or app rates for a shipment fail and no other eligible rate is available, Shopify shows backup rates so the buyer can still check out. They now apply to your whole store by default, wherever you use carrier or app rates — you no longer have to set them up.

What they charge is the part to check. Where Shopify sells labels for a local carrier (USPS in the US, Canada Post in Canada, Evri in the UK, Chronopost in France, Poste Italiane in Italy, Correos in Spain), the backup is that carrier's most economical service. Elsewhere, Shopify estimates a country-specific rate from historical data. Either way, the price may not be what you would have charged. You can switch to your own backup rates by order value or weight, or add a flat rate for the zone: an eligible flat rate is always shown, so the buyer is never left with the backup alone.

Backup rates exist only if the profile has at least one carrier or app rate, and they never appear when only some carrier rates fail. That is how an option can vanish without any fallback: one carrier answers, another times out, and the buyer simply sees fewer choices.

A quick checklist

  1. Backup rates are on, and their price is acceptable for each zone that relies on carrier or app rates.
  2. Every shippable variant has a weight, in the right unit.
  3. Your default package size and weight are realistic for the carrier.
  4. Your rate app's status page, and Shopify's, show no incident. Shopify has posted carrier outages there before, such as “UPS shipping rates not available at checkout” in November 2019, with the advice to add rates from other carriers.
  5. Your plan, and its billing cycle, still include carrier-calculated shipping.
  6. A flat rate exists for countries where the carrier does not deliver.

What our store check covers, honestly

The free store check first reads the rates configured in Shopify: flat, weight-based and price-based rates. When a country gets none of those, it asks again for live carrier rates, the way checkout does, and reads what the carrier or the rate app answers for a test cart to that country. Shopify returns these through a slower, deferred response, so that country takes a few seconds longer.

If the carrier does not answer within 8 seconds, we do not guess: the country is reported as Could not confirm, not as “No delivery option” and not as working. Monitoring treats it the same way: no alert, and the last working options are kept. A carrier that answers but offers nothing is reported as “No delivery option”, because that is what the buyer sees.


Related

Sources: Shopify developer documentation, DeliveryCarrierService (response time limits, retries, caching), and Shopify Help Center, “Backup shipping rates”, checked 10 October 2026. Plan availability: Shopify Help Center, “Third-party carrier-calculated shipping”, “Third-party shipping carrier accounts and availability” and “Troubleshooting and testing shipping rates”; DeliveryCarrierService requirements; Shopify developer changelog, “Adding publicDisplayName field on ShopPlan” (Shopify plan renamed Grow, April 2025); Shopify pricing page; all checked 17 October 2026. Incident history from the Shopify status page's public incident feed, read 17 October 2026.