API & Client Software Issues #
Problems with client software not successfully checking for or receiving updates.
Issue 1: Update Check Returns "invalid_license" #
Symptom: Client receives {"code": "invalid_license"} from the check endpoint.
Checklist:
- Is the license key correct? Copy/paste the exact key (no spaces)
- Is the license active in DDLS > Licenses?
- Is the product ID correct? The ID in the SDK must match the DDLS product ID
- Is the license assigned to this product?
Issue 2: Update Check Always Returns "No Update Available" #
Symptom: Even after publishing a new version, the client receives update_available: false.
Checklist:
- Is the published version status "Published" (not Draft)?
- Does the version have a file uploaded?
- Is the version's channel compatible with the license's channel?
- Is the rollout percentage > 0?
- Does the client's current_version in the request actually need an update? (If they send "2.0.0" and your latest is "2.0.0", no update is returned)
- Are compatibility requirements too restrictive for this client's environment?
- Is the result cached? Wait for the cache to expire (default 15 minutes) or clear the transient cache
Issue 3: API Returns HTTP 429 #
Symptom: Client receives HTTP 429 Too Many Requests.
Cause: The license has exceeded the API rate limit (default: 100 requests/hour).
Fix: The client should implement local caching — store the update check result for 6-24 hours and only re-check when the cache expires or the application starts fresh. If the SDK is checking too frequently, review its caching logic.
Issue 4: API Is Not Reachable #
Symptom: Client software cannot connect to the update check endpoint.
Checklist:
- Confirm the API URL is correct:
GET /wp-json/dmsilm/v1/updates/statusshould return{"status":"ok"} - Is the WordPress site online and accessible?
- Is the extension license valid? (If expired past grace period, the API stops responding)
- Check that the REST API is not blocked by a security plugin (e.g., Wordfence, iThemes Security) or server firewall
- Is HTTPS working correctly? Client SDKs verify SSL by default
