Where to find the error
Open WooCommerce → Status → Logs and pick a source from the filter dropdown. Each source becomes its own dated log file. The sources that carry FedEx errors:
Without
WP_DEBUG, the rate and label logs stay deliberately quiet: one summary line per attempt with the HTTP status and the first FedEx error code. To capture full FedEx responses, enable WP_DEBUG and WP_DEBUG_LOG in wp-config.php. See Logging for the full reference.
Authentication errors: 401, invalid_client, invalid_token, AUTHORIZATION.TOKEN.NOTFOUND, not authorized
What it means. FedEx turned the request away because it does not recognize the credentials — the Client ID and Client Secret don’t match, or the pair is no longer valid.
Usual cause. Expired or wrong keys — the most common cause of all FedEx errors. Other causes the docs call out:
- Keys copied from the wrong environment tab of your FedEx project. Each project has separate test and production keys, and production keys need FedEx approval (3–5 business days) before they work.
- A sandbox-versus-production mismatch: the Environment dropdown says Production while your keys and account number are test ones, or the reverse. Account numbers are not interchangeable either — mixing them fails authentication on every call.
- For tracking only: an empty Tracking tab. Tracking uses its own Tracking Client ID and Tracking Client Secret with no fallback to the main keys, so rates and labels keep working while tracking is silently dead.
Saving does not test the credentials. A wrong value is discovered the first time the plugin talks to FedEx — usually as missing rates at checkout or a label that fails to create.
FedEx unreachable: 502, 503, 504
What it means. Status codes 502, 503, or 504 in the rate log mean FedEx’s servers were unreachable — an outage or maintenance on their side, not a settings problem.
Usual cause. FedEx itself, mid-request. The plugin already waits, retries the price request once, and then shows no FedEx rates rather than an out-of-date price.
The fix. Wait a few minutes and test the checkout again. Check WooCommerce → Status → Logs, source teamzlab_fedex_shippnig, for the status codes. See the rates-don’t-appear section in Troubleshooting.
Label errors: SERVICE.UNAVAILABLE and SERVICE.TYPE.INVALID
What it means. FedEx doesn’t offer the selected service on that lane — the origin-to-destination pair for this shipment.
Usual cause. The service picked for the order isn’t one FedEx actually runs to that address.
The fix. Check the Shipping Methods list on the plugin’s Shipping tab and confirm it contains services FedEx actually offers for your lanes. If the list only shows services you ticked, a missing tick can also hide services from checkout — see the service-disappeared section in Troubleshooting.
NOT.FOUND.ERROR
What it means. FedEx can’t find what the request points at. In this plugin it typically means the account and the environment don’t match.
Usual cause. A sandbox account used with Environment set to Production, or a production account in Sandbox. The label log (teamz_shipment_create) or the order note shows the code.
The fix. Open the Account tab and make the Environment dropdown match your keys and your account number: test account in Sandbox, production account in Production. A real account number is rejected in sandbox and a test account number in production — see Going live and Troubleshooting → Label creation fails.
Never share your Client Secret or your Webhook Shared Secret with anyone, including support. Real support will never ask for them.
Related
Troubleshooting
Plain-English fixes for missing rates, failed labels, and silent tracking.
FedEx credentials
Create FedEx keys and connect the right environment.
Going live
Switch from sandbox to production without surprises.
Logging
Every log source in detail, for your developer.