Most API Manager problems come down to three things: the license doesn’t exist (because of the order’s status or a guest order), the request from your software doesn’t match the license (wrong key or product ID), or something between your software and your store blocks the request. This page lists the symptoms and messages you’re likely to see, with the cause and fix for each.
Our support covers API Manager on your store: licenses, activations, downloads and the licensing API. For your own software, app or custom client, we can offer basic guidance, but we can’t build or debug it for you.
Start with the logs
Under API Manager » Configuration » Debug, turn on Server error log (and Server request log if you need every request), reproduce the problem, then open the log from View Log or WooCommerce » Status » Logs. Each error is logged with the request your software sent, which usually shows the missing or wrong value. Turn the logs off afterwards.
To rule out your software, send the same request with Postman. The PHP library includes a Postman collection, and the licensing API reference has examples.
Licenses and orders
A customer has no license after buying
Check these in order:
- The order status. Licenses exist only while the order is Completed, or Processing when Grant access to downloadable products after payment is on under WooCommerce » Settings » Products » Downloadable products.
- The customer account. A guest order gets no license. API Manager logs "Guest order reached a license-creation status but has no customer account; license resources were not created. Enable account creation at checkout to prevent this." To fix one, assign the order to a customer account (create one if needed), save the order, then choose Regenerate licensing resources from the order actions.
- The product. Licensing must be ticked on the product. If you ticked it after the sale, API Manager builds licenses for past orders in the background, which can take a few minutes on a large store.
- Expiry. A license that has expired and passed its grace period, or whose subscription ended, has been deleted.
For many orders at once, run Licensing resources repair under WooCommerce » Status » Tools.
A renewal gave a customer a second license that never expires
API Manager 3.8.0 and 3.8.1 treated a renewal of a product sold on a WooCommerce Subscriptions plan as a one-time purchase, so the renewal order issued its own license alongside the subscription’s, and that license never expires. Version 3.9.0 stops new ones and removes the existing ones:
- Update API Manager to 3.9.0 or later.
- Under WooCommerce » Status » Tools, run Licensing resources repair. It removes every renewal license that nothing is activated with. The subscription keeps its own license, so the customer loses nothing.
- Open WooCommerce » Status » Logs and choose the
missing-api-resources-repairlog. Each "Kept licensing resource" line names a renewal license the tool left in place because a site is activated with it, along with its renewal order and subscription. - For each one, open the renewal order and, under License activations, click Delete on its activations.
- Run Licensing resources repair again. It now removes those licenses too.
- Ask the customer to activate those sites again. They now activate against the subscription’s license, which expires and renews with the subscription.
Do step 5 before the customer reactivates. Until the extra license is removed, a new activation can land on it again.
A license disappeared after an order or subscription change
Moving the order to any status other than Completed (or Processing with download access after payment), trashing it, or cancelling its subscription removes the license and its activations. See What order changes do to licenses.
Activation errors
These messages come from your store and are shown by your software (the PHP library shows them on its activation screen).
"No licensing resources exist. Login to My Account to verify there are activations remaining, and the license key and product ID are correct."
No active license matches the key and product ID sent. Compare both with the order’s Licensing box or the customer’s My Account » License keys page:
- The key must be the customer’s user license key or the product license key for that order, whichever Enabled types allows.
- The product ID must be the Licensed product ID of the product (for variable products, the variation the customer bought).
- If the license expired, check its grace period and renewal. See How API Manager license expiration and renewal work.
A product list request, which checks only the key, returns the same message ending "…and the license key is correct."
"Cannot activate license key. No licensing resources available."
The license has no activations left. Delete an old activation from the order’s License activations box, ask the customer to delete one from My Account » License keys, or raise Activation limit total on the order.
"Cannot activate license key. The license key has already been activated with the same unique instance ID sent with this request."
The software sent an instance ID that’s already active, usually after it lost its saved activation. Delete the existing activation for that site, then activate again. Each installation needs its own instance ID.
"A customer account does not exist for this license key."
The key sent doesn’t exist on this store. It was typed wrong, or it was replaced. Check the key on the customer’s My Account » License keys page, or on their user profile if you replaced their user license key.
"The access for this license key has been disabled, or a license key was sent that does not exist on this store."
The customer’s user license key is disabled on their user profile, which stops every key they have. See Manage a customer’s user license key.
"The following required query string data is missing:"
The request left out a required key, named after the colon. Most often it’s the product ID, when the software doesn’t hard-code it and the customer left it empty. See the required keys for each action in the licensing API reference.
"The source is not trusted."
Your wp-config.php defines WC_AM_TRUSTED_SOURCES, and the request came from an IP address that isn’t listed, or didn’t send a matching ip_address. See Trusted sources.
Connection and update problems
Customers see "Connection failed to the licensing server."
The customer’s site couldn’t reach your store, or got an unexpected response. Check, in this order:
- Your store’s SSL certificate is valid and not expired. The PHP library checks it on live sites.
- Your caching plugin, host cache or CDN doesn’t cache requests with the
wc-api=wc-am-apiquery string. API Manager already tells caches not to cache your home page, where requests arrive; if you turned that off withWC_AM_DISABLE_HOMEPAGE_CACHE, exclude the query string yourself. - Your firewall, security plugin or a service such as Cloudflare doesn’t block those requests or their query strings.
WP_DEBUG_DISPLAYis off on your store. PHP notices printed into a response break it. Setdefine( 'WP_DEBUG', false );in production, or log errors instead of displaying them.- The customer’s server allows outgoing HTTPS requests.
Start without a firewall or CDN, confirm requests work, then add those services back and test again.
"The product ID … could not be found in this store."
Returned to update and information requests when the product ID isn’t a licensing product on this store, often because the product was duplicated or the ID was typed wrong. Use the Licensed product ID from the product’s Licensing tab. An activation with a wrong product ID returns "No licensing resources exist…" instead.
Updates don’t appear on customers’ sites
- The Version on the product’s Licensing tab must be higher than the version installed.
- The current release must be the first file under Downloadable files.
- Save the product again to refresh its cached update details.
WordPress shows "Update package not available"
Your store told the site about the new version, but only sends the download to an installation with an activated, active license. The key isn’t activated on that site, or the license expired. Activate the key again, then retry. If it persists, check the product’s first downloadable file and the download errors in Deliver downloads and software updates with API Manager.
Store setup problems
Amazon S3 downloads stopped working after changing security keys
API Manager encrypts the stored AWS secret access key with your site’s WordPress security keys. If you change AUTH_KEY or NONCE_SALT in wp-config.php, enter the secret key again under API Manager » Configuration » Downloads, or define WC_AM_AWS3_SECRET_ACCESS_KEY in wp-config.php instead.
License keys or Licensed downloads shows a 404
Go to Settings » Permalinks and click Save Changes to refresh WordPress’s rewrite rules.
License keys pages, renewals or emails are missing with an older WooCommerce Subscriptions
With a WooCommerce Subscriptions version older than 5.0 active, API Manager doesn’t load its My Account pages, renewals or emails. Update WooCommerce Subscriptions to 5.0 or later.
Activations from staging sites use up slots
Turn on Ignore test activations, and make sure your software sends the site address with each activation (the PHP library does). Activations from a site already activated before the setting was on still count; delete them from the order.
