enum AsleepError: Error {
case unknown(systemError: Error)
case shouldResume
case over24hours
case audioInitializationFailed
case unsupportedInDeveloperMode
case cannotActivateInBackground
case startTrackingNetworkFail(code: Int, message: String?)
case stopTrackingNetworkFail(code: Int, message: String?)
case responseResult(endpoint: String)
case httpStatus(code: Int, errorCode: Int, message: String?)
}
unknown: Unknown system error
systemError: Error - error due to system
shouldResume: unable to resume microphone recording after interrupt
over24Hours: recording exceeded 24 hours and is forcibly stopped
The Asleep SDK does not support sleep tracking exceeding 24 hours.
Call "createSleepTrackingManager()" again for Audio setting initialization
cannotActivateInBackground: Failed to resume the microphone after the interrupt ends
If this error occurs, notify the user (e.g., through a notification), and run Asleep.SleepTrackingManager.resumeTracking() while the app is in the foreground.
startTrackingNetworkFail: occurred Network error during startTracking initialization
code: http codes of 400 and above
message: String type - description of the error
stopTrackingNetworkFail: occurred Network error during stopTracking
code: http codes of 400 and above
message: String type - description of the error
responseResult: error due to api reponse result value
endpoint - The endpoint where the problem occurred
httpStatus: http error
code: Int - 400 or more http code
errorCode: Int - not using
message: String - error reason explanation
HTTP Status code
State: COMMON, INIT, TRACKING, REPORT
Code
Type
Description
State
Handling
401
Unauthorized
Unauthorized
COMMON
Client Handling
401
Unauthorized
invalid user id
COMMON
Client Handling
403
Plan is expired
Plan is expired
COMMON
SDK Stop
403
Rate limit exceeded
Rate limit exceeded
COMMON
SDK Stop
403
Quota exceeded
Quota exceeded
COMMON
SDK Stop
400
Bad Request
Invalid callback url
TRACKING
Client Handling
400
Bad Request
[WARNING] Invalid session end time. format(YYYY-MM-DDTHH:mm:ssz), 'session_end_time' must always be greater than 'session_start_time’
TRACKING
SDK Handling
403
Forbidden
the sleep session is already closed
TRACKING
SDK Stop
404
Not Found
session does not exist.
TRACKING
Client Handling
409
Conflict
previous sleep session is not closed yet
TRACKING
SDK Stop
422
Validation Error
Invalid parameter
TRACKING
SDK Handling
422
Unprocessable Entity
Invalid parameter.
TRACKING
SDK Handling
400
Bad Request
invalid timezone
REPORT
Client Handling
400
Unprocessable Entity
The format of sleep session id {session_id} is not valid
REPORT
Client Handling
401
Unauthorized
The api key is not provided
REPORT
Client Handling
404
Not Found
Unable to find the sleep session of id {session_id}
REPORT
Client Handling
Definition for SDK Error Handling
Definition of SDK Segment Operation
Init (initAsleepConfig) : SDK Initialization State
Tracking (SleepTrackingManager): Audio recording environment and server communication protocol management for sleep monitoring
SDK Stop: Termination process within the SDK. The SDK needs to be restarted for a new start because it is terminated internally. Depending on the status of the SDK, the session and audio recording function are terminated by itself. You need to start from the "initAsleepConfig" request to activate the SDK
SDK Handling: The SDK updates the error internally and performs the next action. If you want to terminate after receiving an error, you need to handle it depending on the state of the SDK call. To terminate the SDK, you need to call stopTracking only in the Tracking state, and no separate processing is required in other sections
Client Handling: An error that needs to be handled by the client. Used for error checking during development.
Do not used: An error that is not used in the current version.
Error Handling Classification
The error codes that commonly occur when using the SDK are marked in red. The error codes that are crossed out have a low probability of occurring.