# Error

## Overview

Error는 넓은 영역에서의 예외상황을 말합니다. `onError` 콜백 메소드를 통해서 Error를 받게 되며 아래와 같이 다양한 상황이 있습니다.\
&#x20;Android 의 경우 RemonException 객체에 RemonErrorCode 와 메시지가 전달되며, iOS 의 경우 RemonError 로 정의된 enum 타입으로 에러 코드가 전달됩니다.&#x20;

RemonErrorCode(Android) / RemonError (iOS)

#### invalidParameterError / InvalidParameterError

* `new Remon`시 인자가 잘못될 경우
  * `config`의 Key, Service Id, Local View, Remote View 혹은 `config`나 Callback자체가 없는 경우이거나 너무 길이가 큰 경우
* `connectChannel`시에 잘못된 값(길이가 1이하이거나 필요이상으로 너무 큰 경우 100이상)
* `UnsupportedPlatformError`
  * Browser가 지원하지 않는 경우
  * Version이 지원하지 않는 경우

#### initError / RestInitError

* RESTful API 반환시 에러가 난 경우
  * 500 Error
* 시그널링 서버가 죽어있는 경우
  * 웹 서버는 살아있으므로 웹 서버가 잘못된 페이지를 전달함
* 웹 서버가 죽어있는 경우
  * 400 Error
* Web Socket, RESTful 호스트가 문제가 있는 경우
* Web Socket 시작중에 에러가 난 경우

#### wsError / WebSocketError

* Websocket 통신 중 발생한 에러
* Send Error
* Receive Error

#### connectError / ConnectChannelFailed

* `create`/`connect`의 반환에 `channel`정보가 없는 경우
* `channel`이 만료되거나 `channel`이 없는데 `connect`하는 경우는 알아서 서버가 `onCreateChannel`로 변화시켜버림

#### mediaError / UserMediaDeviceError

* Media 특히 Camera를 못가져온 경우(Video를 On했음에도 불구하고))
* Video Capture를 못가져온 경우

#### iceError / IceFailed

* `peerConnection` 생성 안될때
* SDP가 이미 있는데 또 자기것이 생성된 경우
* ICE, SDP가 파싱이 안되거나 추가가 안되는 경우

#### networkChange

* 네트워크 변경에 의한 에러

#### unknown / Unknown

* 서버에서 전달한 에러 혹은 알수 없는 에

## 반드시 종료해야할 오류코드 <a href="#errorcode_must" id="errorcode_must"></a>

onError 콜백 함수 호출 시 인자로 오류코드와 설명이 주어집니다. 1:1통화와 방송시청 시 아래 오류코드를 받았을 경우는 접속이 원활하지 않아 접속을 종료해야하는 상황입니다. 아래 오류코드를 확인하게되면 close 메소드를 호출하여 접속을 종료해주십시오. \
(\* Android, iOS의 경우 onError 콜백 호출 후 자동으로 접속이 종료되고, onClose 콜백이 호출됩니다.)\
\
일부 오류코드는 자동으로 close 메소드가 호출됩니다. \
Web, Android, iOS 공통으로 사용되는 코드이며, 플랫폼에 따라 일부 차이가 있습니다.\
그룹통화 시 아래 오류코드는 의미가 다릅니다. 그룹통화를 이용하시는 경우 이메일로 문의 바랍니다.

4101 : Service ID, Secret Key가 없음\
4102 : (안드로이드) context 오류

4181, 4182 : 카메라 또는 마이크를 이용할 수 없음\
4161 : (안드로이드) 비디오 캡처 오류\
4162 : (안드로이드) 오디오 레코더 오류\
4163 : (안드로이드) 오디오 트랙 오류

4201 : 리모트몬스터와 인증이 올바르게 이루어지지 않음 (클라이언트의 이유)\
4203 : 서버 초기화 오류\
4204 : 리모트몬스터와 인증이 올바르게 이루어지지 않음 (서버의 이유)\
4205 : 서버 초기화시 잘못된 데이터 오류

4211 : 디바이스가 offline 임

4230 : 피어 생성 실패 \
4231 : 로컬피어 정보 획득 실패\
4232 : 로컬피어 정보 설정 실패\
4244 : 원격피어 정보 설정 실패\
4245 : 미디어,접속 협상 실패\
4246 : 피어 접속 연결 실패

4241 : 네트워크 환경이 매우 좋지 않아 리모트몬스터 서버로 접속이 이루어지지 않음 또는 끊어짐\
4341 : 네트워크 환경이 불안정함\
4342 : 네트워크 환경이 불안정함\
4343 : 네트워크 환경이 불안정함\
\
\
\
2000번대 오류는 서버에서 전달하는 오류입니다. \
2010 : (통화에서) 이미 해당 채널에서 통화가 진행되고 있음\
2370 : 계약하지 않은 서비스 아이디로서, 테스트 시간 3분을 초과하여 종료됨

## 종료 하지 않아도 되는 오류코드

onError 콜백 함수 호출 시 인자로 오류코드와 설명이 주어집니다. 아래 오류코드를 받았을 경우는 통화, 방송, 시청에 잠재적으로 영향을 줄 수 있는 환경의 변화을 알려줍니다. 접속을 종료하지 않아도 안전합니다.\
Web, Android, iOS 공통으로 사용되는 코드입니다.\
그룹통화 시 아래 오류코드는 의미가 다릅니다. 그룹통화를 이용하시는 경우 이메일로 문의 바랍니다.

4344 : 네트워크 환경의 변화

4345 : 네트워크 환경의 변화


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.remotemonster.com/common/error.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
