-8600~-8611, -8624 (Mobile SDK Storage I/O 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 file system errors that occur when the mobile SDK reads and writes downloaded files and databases (DB). The causes vary depending on file I/O and database status, so check your integration environment.
Error code list
| Error code | Type | Description |
|---|---|---|
| -8600 | ERROR_CREATE_DIRECTORY | Failed to create directory |
| -8601 | ERROR_CREATE_FILE | Failed to create file |
| -8602 | ERROR_SAVE_DATA | Failed to save file data |
| -8603 | ERROR_OPEN_DB | Failed to open DB file |
| -8604 | ERROR_CREATE_TABLE | Failed to create DB table |
| -8605 | ERROR_SELECT_TABLE | Failed to query DB table |
| -8606 | ERROR_DELETE_RECORD | Failed to delete DB record |
| -8607 | ERROR_INSERT_RECORD | Failed to insert DB record |
| -8608 | ERROR_OPEN_FILE | Failed to open file |
| -8609 | ERROR_OUT_OF_MEMORY | Processing failed due to insufficient memory |
| -8610 | ERROR_READ_FILE | Failed to read file |
| -8611 | ERROR_WRITE_FILE | Failed to write file |
| -8624 | ERROR_UPDATE_RECORD | Failed to update DB record |
Cause a: no storage access permission
This occurs when the application does not have physical permission to access the device's external storage (SD card) or a specific directory to write data.
- Android: In Android 6.0 (API 23) or later environments, runtime permission was not explicitly obtained, or direct access to external storage is restricted due to the Scoped Storage security policy in Android 10 (API 29) or later.
- iOS: The
KollusStoragestorage path was incorrectly set to an external path with restricted security permissions, rather than to an internal path within the system app sandbox (Documents,Libraryfolders, etc.).
Diagnosis and resolution
- Android: Check the current external storage write permission status of the application and understand the media storage access policy for the target API version.
// Android 6.0 or later - Check whether runtime permission has been granted
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// Request permission from the user
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQ_CODE);
}
- iOS: Verify that the storage path configuration of the
KollusStorageinstance is correct.
Cause b: insufficient device storage space
This occurs when there is no storage space on the device and file creation and writing are not possible.
If a download is requested when storage space is insufficient, this error code is returned along with the -8623 (ERROR_STORAGE_FULL) error.
Resolution
Before starting a download, check the available free space on the device in advance by referring to the examples below.
- Android
long available = new File(downloadPath).getUsableSpace();
// Check if available space is sufficient before starting the download
- iOS
let freeSpace = DiskStatus.freeDiskSpaceInBytes
if freeSpace < requiredBytes {
// Notify the user of insufficient device storage space
}
User notification (example)
"Storage space is insufficient. Please delete unnecessary files and try again."
Cause c: db file corruption
This occurs when the internal SQLite database is corrupted due to a forced app termination or abnormal shutdown, or physical disconnection of storage during a download (forced removal of an external SD card). It is mainly returned as -8603 (DB open failure) and -8604 (table creation failure) patterns.
Resolution
You must delete the corrupted DB file and trigger the re-initialization logic. This process resets the list of downloaded content, so users should be prompted to re-download.
- Android: Release the
KollusStorageinstance → Delete the DB file → Re-create
// Create Android DB file object and delete the file
File dbFile = new File(context.getFilesDir(), "kollus_storage.db");
if (dbFile.exists()) dbFile.delete();
// Re-initialize KollusStorage after deletion
User notification (example)
"A data error has occurred. Please restart the app or re-download the content."
Common diagnosis guide
When an I/O exception error occurs, use the checklist below to identify the issue and respond accordingly.
- Did the -8623 (
ERROR_STORAGE_FULL) error occur at the same time? - Did the error occur right after the first installation or after updating the Android version?
- Did the error suddenly occur on a device that was previously working normally?
- Does the issue not fall into any of the above three categories?
- Collect the detailed error code, device OS version, device model name, and reproduction steps, then contact Technical Support(tech_support@catenoid.net).