60-second checklist
- Fedex Shipping method missing from the customer’s zone — the most common cause.
- Store address missing or mismatched
- Credentials not saved, or wrong environment
- Service allow-list too narrow
- Address validation blocking the checkout — look for “FedEx shipment blocked: …”.
- Daily quota reached — the checkout says so directly.
- FedEx temporarily unavailable —
502,503, or504in the log.
The Fedex Shipping method is missing from the zone
Symptom. No FedEx options for some or all customers; flat rates and other methods appear normally. Why it happens. FedEx prices appear only when the plugin’s shipping method is part of a WooCommerce shipping zone covering the customer’s address — a zone without the method never offers FedEx. Fix:- Go to WooCommerce → Settings → Shipping and open each zone.
- The zone covering the customer’s address must list the Fedex Shipping method. If missing, click Add shipping method, choose Fedex Shipping, then Continue, and click Save zone and method.
- Check the method is not toggled off in the zone’s Enabled column — a disabled method offers no FedEx prices in that zone.
- If you rely on the catch-all zone Locations not covered by your other zones, add the method there too.
Your store address is missing or mismatched
Symptom. Rates are missing for every customer, or the quote fails outright. Why it happens. Every rate request tells FedEx where the parcel starts. That origin comes from the Account tab — its Postal Code and Country are what FedEx prices from. If they are empty or wrong, FedEx has no valid origin to quote from. Fix:- Go to WooCommerce → Settings → General and confirm the store address is complete and correct.
- Go to WordPress Admin → FedEx Shipping → Settings → Account (see Account tab) and fill in Account Number, Postal Code, Country, City, and State Or Province Code.
- Keep the street lines identical to the WooCommerce store address.
Credentials not saved, or the environment does not match
Symptom. No FedEx rates, and the log shows401, invalid_client, not authorized, AUTHORIZATION.TOKEN.NOTFOUND, or invalid_token.
Why it happens. The Client ID and Client Secret on the Authorization tab switch the plugin on — without a valid pair, FedEx turns every request away. Two mixups cause most of these errors: keys from different projects (the ID and Secret must come from the same project), and a sandbox-versus-production mismatch — test keys against the live environment, or real keys against the test one. The Environment dropdown, on the Account tab, decides which FedEx server your keys are used against.
One thing to know: saving does not test the credentials. There is no “test connection” button — saving and getting real rates at checkout is the test. A wrong key is discovered the first time the plugin talks to FedEx.
Fix:
- Sign in at developer.fedex.com, open your project, and copy the Client ID and Secret key from the tab matching your environment: test keys for Sandbox, production keys for Production. Production keys need FedEx approval first — allow 3–5 business days, see Going live.
- Paste them into Client ID and Client Secret on the Authorization tab.
- Set the Environment dropdown to match your keys, and check that Account Number belongs to that environment — account numbers are not interchangeable between the two.
- Click Save Changes. Access tokens are cached against your exact credentials, so the next request uses a fresh one automatically.
The service allow-list is filtering out services
Symptom. Rates appear, but one or more services are missing. Why it happens. The Shipping Methods list on the Shipping tab shows customers only the services you ticked; an empty list shows every service FedEx returns. If your selection would hide every rate returned for a cart, the plugin shows all the returned rates rather than an unshippable cart. Fix:- Open WordPress Admin → FedEx Shipping → Settings → Shipping and find Shipping Methods.
- Tick the missing service, or empty the list to show everything FedEx returns.
- Still missing? Untick
Guarantee "every rate is really available", save, and retest — that optional check hides services FedEx does not confirm for the lane.
Address validation is rejecting the destination
Symptom. The customer’s checkout shows a message starting “FedEx shipment blocked: …” and the order cannot be placed. Why it happens. Enable checkout address validation makes FedEx check the delivery address during checkout; an address that cannot be validated stops the order. Two gotchas: on a brand-new install validation is ON even though the checkbox looks unchecked — it only turns off after you save the tab with the box unticked. And in Sandbox the check does nothing — FedEx retired the sandbox endpoints it calls. Fix:- Open WordPress Admin → FedEx Shipping → Settings → Shipping and find Enable checkout address validation near the bottom of the tab.
- If validation keeps blocking good orders, tick If address validation fails: allow shipment anyway (log + order note) so the order goes through with a note, or untick Enable checkout address validation.
- Click Save Changes.
The daily quota and cached quotes
Symptom. The checkout shows “Checkout limit has been exceeded for today. Please try tomorrow.” in place of the shipping options. Why it happens. Your plan sets a daily limit: Free = 10 per day, Premium = 100, Golden = unlimited. Once reached, the plugin stops asking FedEx for prices, so FedEx rates stop appearing — including prices remembered from earlier the same day. Related: quotes are cached for 10 minutes per destination and cart; saving any Settings tab forces a fresh quote. Fix:- Open WordPress Admin → FedEx Shipping → Settings. Below the save bar, the Daily Quota Controls panel shows your plan and today’s usage, for example “Plan: Free. Today usage: 10 / 10.”
- The panel is read-only — there is no reset button. The counter resets itself at midnight, your store’s local time; wait for that, or upgrade your plan.
FedEx is temporarily unavailable
Symptom. Rates were working, then vanished for everyone, with no settings changed. Why it happens. An outage or maintenance on FedEx’s side. The plugin retries once, then shows no FedEx rates rather than an out-of-date price — it never serves a price from a failed request. Fix:- In WooCommerce → Status → Logs, filter by the source
teamzlab_fedex_shippnigand read the last entries. - Status codes
502,503, or504mean FedEx’s servers were unreachable. Wait a few minutes and test again — the plugin already retried once. - If the log shows
SERVICE.UNAVAILABLEorSERVICE.TYPE.INVALIDinstead, that is different: the chosen service doesn’t run on that lane. Check the Shipping Methods list on the Shipping tab — it should contain services FedEx actually offers for your lanes.
Still stuck?
The details are almost always in WooCommerce → Status → Logs. For missing rates, filter byteamzlab_fedex_shippnig (yes, really spelled that way — the misspelling is in the plugin itself, so search it exactly as written). Other sources: teamz_shipment_create (labels), teamz_fedex_checkout (order placement), teamz_fedex_webhook (tracking updates), and teamz_fedex_email (email failures).
Then contact support with everything below — one complete bundle is usually enough to find the cause:
- The order number and the exact time (with your time zone), the log source you filtered by, and the lines around that time.
- Your environment badge (Sandbox or Production), and screenshots of the relevant Settings tab and of the order.
Never share your Client Secret (secret key) or your Webhook Shared Secret with anyone, including support. Real support will never ask for them. Hide password fields before taking screenshots.
Troubleshooting
The full problem-by-problem fix list.
Checkout rates
How quotes are built and cached.
Credentials
Create FedEx keys and connect the right environment.
Shipping settings
Services, rate types, and the availability guarantee.