Why do only my California customers get a shipping error at checkout?
If checkout shows "no shipping options available" only for orders from one state, the cause is almost always a gap in your shipping zones, profiles, or weight-based rate brackets — not something wrong with that customer's address.
What's going on
"Why do only my California customers get a shipping error at checkout?" is a more common question than it sounds like, and it almost never means Shopify is singling out a state. What's actually happening is that your shipping configuration has a gap that only that state's traffic happens to hit — and because the symptom is regional, it's easy to go looking for a bug in address handling when the real cause is upstream in how zones, profiles, and rate brackets are set up.
Shopify's shipping rates are built from a chain of settings: a shipping profile groups products together, each profile has zones (built from countries and, for supported countries, states/provinces), and each zone has rate rules based on order weight or price. If a customer's state isn't covered by any zone in the profile their cart's products belong to, or if their order's weight or subtotal falls between two defined rate brackets with nothing covering the gap, checkout will show no shipping method at all — not an error naming the state, just an absence of options. Support tickets about this often get resolved once someone actually reproduces the cart with the customer's real postal code and weight, which is why checking region and weight together is the standard troubleshooting move.
Why it happens
Shipping zones in Shopify are defined by country and, for a handful of countries, by state/province — there's no way to scope a standard zone to an individual zip code, so a state either has a matching zone with rates or it doesn't. If a state was never added to any zone (easy to miss when you set zones up once and add products or profiles later), customers in that state simply have no rate to see.
Weight- and price-based rate tables are entered as brackets (e.g., 0-2 lb, 2-5 lb, 5-10 lb). If a bracket boundary is missing or mistyped, any cart whose total weight falls in the gap gets no rate — and because purchasing patterns (bulkier orders, multi-item orders) can skew by region, a bracket gap can look like a state-specific problem even though it would affect any customer whose cart happened to land in that weight range.
Stores running multiple shipping profiles (a general profile plus custom ones for specific products) need every profile touched by the cart's contents to have valid coverage for the customer's address. A product quietly assigned to a custom profile that was never given rates for a given state will block checkout only for that state's customers ordering that product — which reads as a regional bug but is really a profile-configuration gap.
5 ways to fix it
Audit your shipping zones and rate brackets first — this is the #1 cause
In Shopify go to Settings > Shipping and delivery, open each shipping profile, and check every zone that includes the affected state. Two things break silently and only show up for orders from certain states: (1) a state was left out of every zone (it falls through to a "Rest of world" zone with no rates, or no zone at all), and (1) your weight- or price-based rate conditions have a gap — for example rates defined for 0-5 lb and 15+ lb but nothing for 5-15 lb. Any cart whose weight or subtotal lands in that gap gets zero shipping options at checkout, and because order weights vary by what people in a given region tend to buy, it can look like a state-specific bug when it's really a bracket gap. Walk the rate table for the zone containing the state in question end-to-end and make sure there's no numeric gap and no missing upper/lower bound.
Check for conflicting shipping profiles
If you use more than one shipping profile (the default "General" profile plus custom profiles for specific products, like oversized items or a separate vendor's SKUs), Shopify requires every profile represented in the cart to have a valid rate for the customer's address before it will show any shipping options. A product quietly assigned to a custom profile that was never given a zone/rate entry for that state will block checkout only when a customer in that state orders that specific product — which reads exactly like a regional bug. Go to each custom profile and confirm it covers the same states as your general profile, or add the affected products back to the general profile if a separate profile isn't actually needed.
If you use carrier-calculated rates, check for service and weight limits
If rates come from Shopify Shipping or a connected UPS/USPS/FedEx/DHL account rather than flat/weight-based rates you set manually, the carrier itself can decline to quote a rate for a specific address, package weight, or dimensional weight combination (rural routes, PO boxes, oversized/overweight parcels, or destinations the carrier flags for additional handling). This shows up as "no shipping rates available" for a subset of addresses in a state even though your Shopify settings look fine, because the failure is happening on the carrier's side. Test with a real cart (a heavy or bulky item, not just a sample product) from a couple of representative postal codes in that state to see whether the same cart succeeds with a different carrier or with manual rates.
If you're using Local Delivery, check the delivery area definition
Local Delivery areas (as opposed to standard shipping zones) can be defined by a list of zip/postal codes or by a radius from your store location, and are easy to set up so a handful of zip codes in a state are unintentionally excluded or included twice across overlapping delivery areas. If any of the affected customers are inside a local delivery radius, check Settings > Shipping and delivery > Local delivery to confirm their zip code is actually covered and isn't also being claimed by another delivery area that has no valid rate.
Reproduce it with real postal codes before changing anything
Before editing rates, confirm exactly where the failure lives: open the storefront in an incognito window (or use Shopify's checkout in test mode), add the same product(s) a real customer ordered, and enter two or three representative postal codes from the state in question plus one from a state that works. Compare which shipping options appear at each. This narrows the fix to "zone/profile gap," "weight bracket gap," or "carrier decline" in a few minutes rather than guessing, and gives support a concrete before/after to hand to a developer if the fix turns out to need custom shipping rate logic.
Bottom line
In the overwhelming majority of cases this is a configuration gap in Shopify's own shipping zones, profiles, or rate brackets — not a platform bug — so it's worth working through the checklist above with real postal codes before assuming you need any third-party tool. If your store has grown into several overlapping shipping profiles or a complex rate table and you keep finding new gaps every time you add a product or zone, a shipping-rate auditing app (one that flags zones/weight brackets with no coverage) can save time versus manually cross-checking every profile by hand — but it's solving a bookkeeping problem, not a bug Shopify introduced.
Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.