3XXX (Web Player/HTML5 Player for All 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 error codes that occur in Web Player (v5) and HTML5 Player for All (v4). When an error event fires, use the get_error_detail() method to check the code.
controller.on('error', function() {
var detail = controller.get_error_detail();
console.error('Error code:', detail.code, detail.message);
});
3000
- Error code: 3000
- Type:
ERROR_API_CONNECTION - Summary: Kollus server API call failed during player initialization
Cause
- The user's internet network connection was temporarily lost.
- A temporary outage occurred in the Kollus server infrastructure.
- The Kollus communication domain is blocked by the service site's CSP (Content Security Policy).
Solution
- Check the user's internet network connection status, then refresh the browser page.
- If CSP is configured on the customer's service website, verify that the
*.kollus.comdomain is properly allowed in the firewall and security whitelist.
3001
- Error code: 3001
- Type:
MEDIA_ERR_ABORTED - Summary: Playback cancelled by the user or browser
Cause
This occurs when media loading is interrupted by an intentional action, such as the user switching browser tabs or navigating to another page while watching a video. This is typically part of a normal service usage flow, so no special error handling is needed.
3002
- Error code: 3002
- Type:
MEDIA_ERR_NETWORK - Summary: Network connection lost during video playback
Solution
Implement logic to automatically retry playback after detecting network reconnection, or provide a manual retry button in the user UI.
controller.on('error', function() {
var detail = controller.get_error_detail();
if (detail.code === 3002) {
showRetryButton();
}
});
3005
- Error code: 3005
- Type:
MEDIA_ERR_ENCRYPTED - Summary: Encrypted content is not supported in the current playback environment
Cause
- Playback of encrypted content with a DRM security policy was attempted in the HTML5 Player for All (v4) environment, which supports only standard content (unencrypted).
- The web browser the user is using is an older browser that does not support EME (Encrypted Media Extensions).
Solution
Encrypted (DRM) content must be played in the HTML5 Player for PC (Hybrid) or Multi DRM environment.
- HTML5 Player for PC (Hybrid): A hybrid HTML5 player product line applied when playing encrypted content on Microsoft Edge or Chrome 45 or later.
3008
- Error code: 3008
- Type:
ERROR_DUPLICATE_PLAYER - Summary: Detected two or more players running simultaneously on the same page
Cause
- Multiple
iframeelements for Player Call were inserted into a single web page. - In a SPA (Single Page Application) development environment, a new player instance was simultaneously mounted without fully unmounting the existing player component.
Solution
Ensure that only a single player instance is active within one web page at a time.
When replacing a player, call the dispose() method on the previously used player object first to fully release it from memory.
controller.dispose();
// Create a new player instance
3012
- Error code: 3012
- Type:
MEDIA_ERR_LIVE_NOT_BROADCASTING - Summary: No live stream currently in progress
Cause
This occurs when the requested live channel is not currently streaming, or when a connection is attempted after the live stream schedule has completely ended.
Solution
Display a guide message on the user screen indicating the scheduled time for the live session, or instruct users to refresh the browser after the stream has started to re-enter.
3013
- Error code: 3013
- Type:
ERROR_DUPLICATION_BLOCK_OR_EXPIRED_TIME_MEDIA_KEY - Summary: [Live only] Concurrent playback blocked or playback permission time expired
Cause
- Concurrent playback blocked: A session using the same user identifier (
client_user_id) data is already active and streaming on another device or browser. - Playback permission time expired: The
exptsetting in the JWT or the media key's time-to-live (TTL) has completely expired.
Diagnosis
Check the get_error_detail().message result to determine which of the two causes applies.
Solution
- Concurrent playback blocked case: Display a warning popup to the user such as "Already playing on another device."
- Playback permission time expired case: Issue a new JWT authentication token and request playback again.
3015
- Error code: 3015
- Type:
ERROR_CONCURRENTLY_VIEWER_LIMIT - Summary: Maximum concurrent viewers exceeded
Cause
Traffic exceeded the maximum concurrent viewers threshold set in the live channel settings in the Kollus Live console. This typically occurs in real-time live streaming environments with a large influx of users.
Solution
- Display a user notification popup: Show a message such as "There are too many viewers at the moment. Please try again later."
- Tip for implementing auto-retry logic: To prevent a thundering herd problem, it is recommended to apply an exponential backoff algorithm that progressively increases the interval between retries instead of retrying immediately.
3019
- Error code: 3019
- Type:
ERROR_DETECT_MANIPULATION - Summary: Player data tampering detected
Cause
If tampering with player-related data is detected, it is treated as a security threat and the video playback process is immediately blocked. This rarely occurs in a normal viewer environment.