-86XX (Mobile SDK Storage·DRM Errors)
This document is a machine-translated draft and is currently undergoing review. Some content may be inaccurate or differ from the original Korean version. For the most precise information, refer to the Korean documentation.
These are storage manager errors that occur during the download and offline playback process of the mobile SDK.
-8623
- Error code: -8623
- Type:
ERROR_STORAGE_FULL - Summary: Insufficient device storage space
Cause
Occurs when the available free space on the device at the time content download begins is less than the file size of the content to be downloaded.
Solution
Implement logic to check the actual free space on the device before starting the download process.
Android
long available = Utils.getAvailableMemorySize(downloadPath);
long required = contentSize + 150 * 1024 * 1024L; // Content size + 150MB buffer
if (available < required) {
// Show "Insufficient storage" UI popup to the user and prompt to free up space
showStorageCleanupDialog();
} else {
storage.download(mck);
}
iOS
let freeSpace = DiskStatus.freeDiskSpaceInBytes
if freeSpace < requiredSpace {
// Notify user of insufficient device storage
}
User-facing message (example)
"Storage space is insufficient. Please delete other downloads or free up device storage."
-8638
- Error code: -8638
- Type:
ERROR_NOT_EXIST_DOWNLOADED_CONTENTS - Summary: Downloaded file not found
Cause
- A record exists in the download database inside the app, but the actual file does not exist at the storage path. (e.g., the user deleted the file using an external file manager app)
- The user completely uninstalled and reinstalled the app, or the mount path of external memory (SD card) changed and the file can no longer be recognized.
- A query was attempted using an invalid media content key (
mck) value that does not actually exist in the database.
Diagnosis and solution
By default, the Kollus SDK automatically removes entries from the download list when it detects that the actual file is missing. If this error is observed persistently, refer to the code below to refresh the download list data.
Android (Refresh the download data list)
ArrayList<KollusContent> list = mMultiStorage.getDownloadList(-1);
// Reload the refreshed list and update the user UI
-8643
- Error code: -8643
- Type:
ERROR_EXPIRATION_DATE - Summary: DRM expired
Cause
Occurs when attempting to authenticate content for offline playback and the DRM license's security expiration date (expiration_date) has already passed relative to the current time.
Solution
Check whether the device is currently online (network connected), then renew the license. Handle playback retry after a successful license renewal, and if the renewal process fails due to network disconnection or other reasons, prompt the user to re-download the content.
Android
When false is passed, only expired entries are renewed
storage.updateDownloadDRMInfo(mck, false);
iOS
When false is passed, only expired entries are renewed
storage.updateDownloadDRMInfo(false)
The expiration_date value that specifies the valid expiration date is set in the server response when the DRM download callback (kind 1) event occurs.
If the expiration block for a user is triggering earlier than intended, check the response data field values on the callback server.
-8644
- Error code: -8644
- Type:
ERROR_EXPIRATION_COUNT - Summary: Playback count limit exceeded
Cause
Occurs when playback is attempted after exceeding the play_count or expire_count values set in the DRM download callback (kind 1) response.
Solution
An expired state caused by exceeding the playback count cannot be recovered by simply renewing the license information. According to your service operation policy, prompt the user to delete and re-download the file, or display a dedicated customer support UI.
-8658
- Error code: -8658
- Type:
ERROR_FORCE_EXPIRED - Summary: Server forcibly revoked content rights via DRM callback
Cause
Occurs when the DRM download callback (kind 2, kind 3) response returns content_expired: 1 or content_delete: 1.
Cases
- The customer's server sent a forced revocation response to invalidate a user's local download file rights as a result of the user canceling enrollment or withdrawing from the service.
- A service administrator stopped distributing a specific piece of content from the console.
Solution (Android)
@Override
public void onDRMInfo(KollusStorage storage, KollusContent content, int nInfoCode) {
if (nInfoCode == DCB_INFO_DELETE) {
// The local media file has been forcibly deleted by the server's command.
// Use the handling below to synchronize and remove the entry from the download list in the user UI.
adapter.removeByMck(content.getMediaContentKey());
}
}
-8683
- Error code: -8683
- Type:
ERROR_EXPIRATION_PLAY_TIME - Summary: Playback time limit exceeded
Solution
As with error code -8644, recovery is not possible by simply renewing the license information. In accordance with your service operation policy, prompt the user to re-download the content or set up a guidance process.
Recommended UX patterns common to expiration errors
Refer to the workflow example below to write error exception handling branch code for the offline playback environment.
Offline playback attempt → -8643 / -8644 / -8683 error code detected
- Network connected: Call
updateDownloadDRMInfo()to attempt license renewal- Renewal successful: Resume playback process
- Renewal failed: Display 3 guidance popups (request retry / recommend re-download / contact customer support)
- No network connection: Display the message "Please connect to the internet and renew your license." to the user