Update Server Download Issues #
Problems with customers or client software not being able to download updates.
Issue 1: Download URL Returns 404 #
Symptom: Client software or customer portal download fails with a 404 error on the /dmsilm-download/ URL.
Most common cause: Rewrite rules not flushed after installation.
Fix:
- Go to Settings > Permalinks
- Click Save Changes (no changes needed — just clicking Save flushes the rewrite rules)
- Retry the download
Why this happens: The extension registers a custom rewrite rule on every WordPress init hook. But the rewrite rules cache (stored in the database) needs to be refreshed to pick up new rules. This is a one-time step required after first installation. If it recurs, check whether a caching or security plugin is interfering with rewrite rule registration.
Issue 2: Download URL Returns 401 or 403 #
Symptom: Download attempt fails with HTTP 401 (Unauthorized) or 403 (Forbidden).
Causes and fixes:
| Cause | Fix |
|---|---|
| Token has expired | Client must re-check for updates to get a fresh download URL (tokens expire after the configured duration, default 1 hour) |
| AUTH_KEY/AUTH_SALT changed | Site migration or security key rotation invalidated all tokens; clients automatically get fresh tokens on next update check |
| License is no longer active | Check the license status in DDLS > Licenses |
| Rate limit exceeded | Client downloaded this token more than the allowed times/hour; wait 1 hour |
Issue 3: File Is Missing After Upload #
Symptom: Customers get an error like "file not found" even though you uploaded the file.
Checklist:
- In the version edit form, does the file name and size appear in the Upload Release File field?
- Check that the directory
wp-content/uploads/dmsilm/updates/is writable by PHP - Check Settings > System Status for file writing status
- On shared hosting, confirm the upload directory was created during plugin activation (if not, create it manually at
wp-content/uploads/dmsilm/updates/and add an.htaccesswithDeny from all)
Issue 4: Customer Downloads Old Version Instead of New #
Symptom: API returns an older version even though you published a newer one.
Causes:
- Update check cache has not expired yet (wait up to the configured cache duration, default 15 minutes)
- Rollout percentage is set below 100% and this license is not in the current rollout bucket
- The version's channel is beta or alpha but the license channel is stable
- Compatibility requirements block the update for this client's environment
Fix:
- Edit the version, scroll to Update Server Settings
- Check the channel, rollout percentage, and compatibility fields
- If needed, use the "Full Rollout" row action to set rollout to 100%
- Clear the transient cache: go to DDLS > Settings > Update Server and check for a "Clear Cache" option, or deactivate/reactivate the plugin to force cache clearing
Issue 5: Version Sorting Is Wrong #
Symptom: An older version (e.g., 1.9.0) appears as "latest" instead of the newer 1.10.0.
Cause: Versions are ordered by ORDER BY version DESC using MySQL string sort. String sorting orders "1.9.0" after "1.10.0" because "9" > "1" in string comparison.
Fix: Use zero-padded version numbers to avoid this: 1.09.0 sorts before 1.10.0. Alternatively, plan version numbers to avoid this situation (e.g., jump from 1.9.x to 2.0.0 rather than 1.10.x).
This is a known limitation documented in the extension's gotchas.
